New GLSL To LLVM Implementation For Mesa

Vincent's glsl-to-llvm work is able to generate LLVM IR out of GLSL for drivers that have a LLVM back-end in mesa/Gallium3D. Right now most of the work has been toying with the R600g driver and its LLVM back-end. This conversion pass isn't doing any optimization work at this point but simply converting GLSL to LLVM, similar to the GLSL to TGSI work previously.
While the tree is now under an "RFC" state, it's not regression-free and has some work ahead before it could even be considered for merging. "So far I managed to get something like 200 regressions on 7000 passing tests in piglit, but recent changes (ie moving the interpolation logic inside backend) added 100 others regressions in current trunk, because of failing front/back face color issue I'm working on."
Lejeune ends his mailing list message with, "I'd like to request your feedback and suggestion on my work. Glsl-to-llvm does not calls any gallium function and can also be used by classic dri drivers. I don't know what is the current status of the recently announced llvm i965 compiler, I don't know if it has already its own glsl-to-llvm pass or not. If not, it would be really great if this pass was also shared by i965, as the more drivers use it, the more reliable it is."
It was shared last month in San Diego that Intel is finally looking at an LLVM compiler for their DRI driver rather than continuing to work on their own custom compiler implementation. The other Gallium3D drivers have already been after LLVM-based compiler back-ends for various reasons. There was also Mesa LunarGLASS previously as a different implementation that made Mesa use LLVM for its IR.
2 Comments