[Mesa-dev] compiling OpenCL C to NIR

Tomeu Vizoso tomeu.vizoso at collabora.com
Tue Jan 9 10:03:39 UTC 2018


Hi,

I'm still trying to estimate the work required to support OpenCL on 
Freedreno, and as part of that I have given a try to put Khronos' 
LLVM-SPIRV into a shape that Mesa can depend on:

https://gitlab.collabora.com/tomeu/llvm-spirv

I basically took Khronos' master branch, rewrote history to remove
anything not SPIRV-specific, and applied on top Nic's changes to match
LLVM 6.0. Also borrowed some build system changes from clspv.

Hopefully at some point this will become something that can be merged 
into LLVM (probably as a target), but that doesn't seem to be close 
enough and right now it's blocking other work.

Once/if I start working on this in earnest, my first steps will be 
making it a proper FOSS project to which people can contribute, and then 
have Clover use it to pass SPIR-V to spirv-to-nir and from there to 
Gallium drivers that are able to consume NIR.

Have checked with a few simple CL C kernels that spirv-to-nir is able to 
consume the SPIRV that llvm-spirv produces, so I think this approach 
will allows us to progressively advance on spec coverage by working 
mostly on spirv2nir, Clover and the Gallium drivers.

Thanks to everybody who has given feedback so far!

Regards,

Tomeu


More information about the mesa-dev mailing list