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 Articles & Reviews
  1. Turning A Basement Into A Big Linux Server Room
  2. NVIDIA's $1000+ GeForce GTX TITAN X Delivers Maximum Linux Performance
  3. OS X 10.10 vs. Ubuntu 15.04 vs. Fedora 21 Tests: Linux Sweeps The Board
  4. The New Place Where Linux Code Is Constantly Being Benchmarked
  5. 18-GPU NVIDIA/AMD Linux Comparison Of BioShock: Infinite
  6. Phoronix Test Suite 5.6 Adds New Phoromatic Enterprise Benchmarking Features
Latest Linux News
  1. Mesa's Android Support Is Currently In Bad Shape
  2. Wayland's Weston Terminal Can Now Be Minimized
  3. Phoronix - Working Towards Faster Page Loads
  4. Improved OpenCL Support For Blender's Cycles Renderer
  5. Mesa 10.5.2 Packs In A Handful Of Fixes
  6. More Fedora/Ubuntu Linux vs. OS X OpenGL Benchmarks
  7. Intel Adds Mesa IR To NIR Translator & Makes Other NIR Improvements
  8. HAMMER2 Gets A Man Page
  9. Kodi 14.2 Released To End Out The "XBMC" 14.x Series
  10. Debian 8.0 Jessie RC2 Installer Released
Most Viewed News This Week
  1. Introducing The Library Operating System For Linux
  2. Allwinner Continues Jerking Around The Open-Source Community
  3. AMD Is Hiring Two More Open-Source Linux GPU Driver Developers
  4. Open-Source Driver Fans Will Love NVIDIA's New OpenGL Demo
  5. Systemd Change Allows For Stateless Systems With Tmpfs
  6. GNOME Shell & Mutter 3.16.0 Released
  7. GNOME 3.16 Released: It's Their Best Release Yet
  8. GNU Nano 2.4.0 Brings Complete Undo System, Linter Support & More