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.

Latest Linux Hardware Reviews
  1. Mini-Box M350: A Simple, Affordable Mini-ITX Case
  2. Overclocking The AMD AM1 Athlon & Sempron APUs
  3. AMD Athlon 5350 / 5150 & Sempron 3850 / 2650
  4. Upgraded Kernel & Mesa Yield A Big Boost For Athlon R3 Graphics
Latest Linux Articles
  1. AMD OpenCL Performance With AM1 Kabini APUs
  2. A Quick Look At GCC 4.9 vs. LLVM Clang 3.5
  3. Are AMD Athlon/Sempron APUs Fast Enough For Steam On Linux?
  4. AMD Athlon's R3 Graphics: RadeonSI Gallium3D vs. Catalyst
Latest Linux News
  1. R600 Gallium3D Disables LLVM Back-End By Default
  2. Fedora 21 Gets GNOME 3.12, PHP 5.6, Mono 3.4
  3. Fedora Workstation Is Making Me Quite Excited
  4. Maynard: A Lightweight Wayland Desktop
  5. Chromium Browser Going Through Growing Pains In Ubuntu 14.04
  6. KDE 4.13 Is Being Released Today With New Features
  7. Trying Out Radeon R9 290 Graphics On Open-Source
  8. Intel Broadwell GT3 Graphics Have Dual BSD Rings
  9. Early Linux 3.15 Benchmarks Of Intel Core i7 + Radeon
  10. Red Hat Releases Its RHEL 7 Release Candidate
  11. New Features Coming To Xubuntu 14.04 LTS
  12. NVIDIA Officially Releases CUDA 6
Latest Forum Discussions
  1. Linux Kernel Developers Fed Up With Ridiculous Bugs In Systemd
  2. After Jack Keane, RuseSoft will briing Ankh 3 to Linux through Desura
  3. Change installation destination from home directory
  4. Updated and Optimized Ubuntu Free Graphics Drivers
  5. The GNOME Foundation Is Running Short On Money
  6. Bye bye BSD, Hello Linux: A Sys Admin's Story
  7. New tool for undervolt/overclock AMD K8L and K10 processors
  8. How to enable opengl 3.3 on r9 270?