1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

Why IBM Now Views LLVM As Being Critical Software

Hardware

Published on 07 May 2013 08:49 AM EDT
Written by Michael Larabel in Hardware
18 Comments

It wasn't until the middle of 2012 that IBM viewed LLVM as being "critical" to support but since then they have decided to fully support LLVM across all IBM server platforms. Last week in Paris at the European LLVM Meeting, one of their developers talked about the tipping point in supporting LLVM on IBM hardware and their current development status.

Ulrich Weigand of IBM was the compiler developer talking at the European LLVM Meeting in France last week. Weigand said until recently LLVM wasn't viewed as critical for enterprise Linux platforms and IBM's Linux Technology Center wasn't interested in fully supporting a second toolchain (after GCC), but then last year they decided to support LLVM across IBM server platforms. IBM LLVM support comes in the form of improvements to the 64-bit PowerPC back-end for their IBM POWER servers and creating a new SystemZ back-end for their mainframe systems.

One of the important LLVM uses that sparked IBM's attention was LLVM beginning to be adopted for a Just-In-Time (JIT) engine. LLVM is now widely used when it comes to Mesa's LLVMpipe Gallium3D driver as a software fall-back in cases of no hardware acceleration. With the latest GNOME release requiring 3D graphics or to use LLVMpipe, enterprise Linux distributions (RHEL) will soon require this LLVM support. There's also "certain proprietary database applications" using LLVM JIT for compiling SQL stored procedures. Beyond that, Mono and plenty of other projects are also using LLVM JIT.

Another main reason for IBM gaining interest in LLVM is that it's become a customer requirement and there's interesting LLVM/Clang advantages. Among the mentioned advantages were Address Sanitizer and Thread Sanitizer and Clang's better error messages over GCC. "Overall: LLVM support seen as critical now."

With LLVM now being critical to IBM, developers have made various improvements and fixes to the PowerPC back-end. IBM has also contributed PowerPC build bots for testing the latest LLVM code. New features provided to the back-end is improved code generation with compile-time PowerPC long double support, fully-implemented TLS support, medium/large code model support, and some Altivec enhancements. There's also been 64-bit MCJIT support, Assembler parser support, and disassembler support.

Some of the future work IBM has planned for the LLVM PowerPC back-end includes improved ISB support for current processors, performance tuning with instruction scheduling and benchmark analysis, and potential 32-bit improvements.

The other back-end IBM has been working on is for SystemZ. As luck would have it, just yesterday Clang SystemZ support was merged. Years ago there was a SystemZ back-end but it was dropped in 2011 over lack of maintenance. This new back-end is somewhat based on the old back-end and supports the 64-bit z/Architecture, support for Z10 processors and newer, Linux OS support, and focuses on features and correctness over performance.

The LLVM SystemZ back-end now works with support for the Clang C/C++ compiler, integrated assembler, assembler parser, and MCJIT. Right now LLVM is performing about 15% worse than GCC for SystemZ and about 7% worse for PowerPC, which are areas that will warrant further investigation. In comparing LLVM and GCC, Ulrich Weigand noted there's many similarities but LLVM seems more flexible for handling target-specific passes and overriding common passes.

For those that weren't in attendance at the 2013 European LLVM Meeting, there's PDF slides and a MOV video.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Linux Hardware Reviews
  1. Scythe Mugen MAX
  2. Intel Core i7 5960X Haswell-E On Linux
  3. Intel 80GB 530 Series M.2 SSD On Linux
  4. With A New Motherboard, The Core i7 5960X Haswell-E Lights Up
Latest Linux Articles
  1. 7-Way Linux Desktop Gaming Comparison On Ubuntu 14.10
  2. Intel P-State vs. CPUFreq Benchmarks On The i7-5960X
  3. RadeonSI GLAMOR Benchmarks With X.Org Server 1.16
  4. RadeonSI Gallium3D vs. Catalyst At 4K UHD On Linux
Latest Linux News
  1. Mesa 10.3 Released With The Latest Open-Source GPU Driver Improvements
  2. GNOME 3.13.92 Officially Released
  3. Wine 1.7.27 Is Still Working Towards Direct2D Support
  4. Wasteland 2 Officially Launched Today, Including For Linux Gamers
  5. Tropico 5 Launches On Steam For Linux
  6. The Intel Core i7 5960X Continues Running Great On Linux
  7. Geometry Shaders, OpenGL 3.2 Land In Mesa For Intel Sandy Bridge
  8. Wayland & Weston 1.6 Released
  9. Tizen Smartphones Reported To Launch In November
  10. NVIDIA Releases The 343.22 Linux Driver With GTX 980 Support
Latest Forum Discussions
  1. X.Org Women Outreach Program Only Turns Up Two Applicants So Far
  2. Stop grabbing my keyboard :(
  3. Can Linux kill a motherboard?
  4. ASRock AM1H-ITX: One Of The Best AM1 Mini-ITX Motherboards
  5. New Group Calls For Boycotting Systemd
  6. Updated and Optimized Ubuntu Free Graphics Drivers
  7. Best Radeon for a Power Mac G5?
  8. New stress testing utility for GPU's