In Road To OpenCL, R600g LLVM Back-End Arrives

Posted by Michael Larabel on December 09, 2011

Before calling it a week, Tom Stellard at AMD published a Git branch that offers up an LLVM shader back-end for the AMD R600 Gallium3D driver. This is one of the steps in bringing Compute/OpenCL support to the open-source AMD Radeon Linux graphics drivers.

Tom Stellard announced on Friday afternoon this R600g LLVM shader back-end branch to the Mesa developer's mailing list. Tom's r600g-llvm-shader branch of his Mesa repository offers a TGSI (the current Gallium3D IR) to LLVM IR converter, changes to Gallivm to make it portable with the TGSI-to-LLVM converter, and the LLVM back-end for R600g itself. The TGSI-to-LLVM converter will likely be of use to more Gallium3D drivers besides the R600g driver itself, since TGSI is universal to the drivers and not Radeon-specific.

This LLVM back-end is based upon AMD's AMDIL LLVM back-end for OpenCL with various modifications. Tom says this new shader back-end currently passes 99% of the Piglit regression tests that work with the current R600g shader back-end. The failures are coming from unimplemented texture instructions and on a current lack of indirect addressing support. The LLVM back-end also isn't optimized for VLIW at this point plus other optimizations are lacking. "The optimizations in r600_asm.c are able to do some instruction packing, but the resulting code is not yet as good as the current backend."

And here's the key part of his message:
The main motivation for this LLVM backend is to help bring compute/OpenCL support to r600g by making it easier to support different compiler frontends. I don't have a concrete plan for integrating this into mainline Mesa yet, but I don't expect it to be in the next release. I would really like to make it compatible with LLVM 3.0 before it gets merged (it only works with LLVM 2.9 now), but if compute support evolves quickly, I might be tempted to push the 2.9 version into the master branch.

More information coming 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.
  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