OpenCL, GLSL Back-End For LLVM May Soon Open Up

Posted by Michael Larabel on August 27, 2011

A university student that successfully wrote OpenCL and GLSL back-ends to the Low Level Virtual Machine (LLVM) is arranging to have the code open-sourced if there is interest, which already LLVM developers are requesting.

Simon Moll, a German developer wrote the OpenCL LLVM back-end for his thesis at Saarland University. He also wrote an LLVM back-end for the GL Shading Language.

He mentions these details in this LLVM mailing list message. His thesis with all of the LLVM engineering details can be found on the university website (PDF). "We implemented backends for both OpenCL and GLSL programs, that can de-compile LLVM-Bitcode with some constraints (mostly due to unsupported data-types). The final evaluation shows that the performance of decompiled OpenCL matches that of reference OpenCL programs in most cases."

This is actually quite interesting work since the OpenCL program is generated from the LLVM bit-code, which is derived from whatever high-level language was passed to the Low-Level Virtual Machine. From the thesis, "The back-end should be restricted as little as possible to specific high-level languages. This was realized by separating the recovery of high-level control-flow from the generation of target language code. However, the target languages need to be imperative."

The Open Compute Language back-end targets OpenCL 1.0, but likely could be updated to support the newer OpenCL 1.1 revision.

Within the OpenCL/graphics world, LLVM is already used by AMD for their proprietary OpenCL/Stream implementation, is used by parts of Gallium3D, and is being used for the OpenCL state tracker.

Check out the thesis while this code to these LLVM back-ends will hopefully be open-sourced soon.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. Mir's GPLv3 License Is Now Raising Concerns
  2. NVIDIA Driver Soon Likely To Support EGL, Mir
  3. OpenMandriva Goes Into Alpha Form, Russian-Based
  4. NVIDIA Brings Their Linux Driver To ARM
  5. D Language Still Showing Promise, Advancements
  6. Planetary Annihilation Released For Linux Gamers
  7. Gentoo Starts Work On KDE-Wayland Support
  8. NVIDIA To License Its Kepler GPU Technology
  9. KDE's KWin Made Lots Of Progress In 4.11
  10. Ubuntu Announces Carrier Advisory Group
  11. Qt 5.1 Release Candidate 1 Has Arrived
Latest Forum Talk
  1. Mir's GPLv3 License Is Now Raising Concerns
  2. Gentoo Starts Work On KDE-Wayland Support
  3. D Language Still Showing Promise, Advancements
  4. Benchmarking The Intel P-State, CPUfreq Changes
  5. Intel GPU Driver Tries To Rip Out FBDEV Support
  6. Five Years Later, Intel Poulsbo Is Still A Linux...
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite