The SPIR-V target within the LLVM compiler for outputting to this common IR used across different accelerator/device types, different APIs from Vulkan and SYCL to GLSL / OpenCL / HLSL, and adapted for a variety of innovative use-cases could soon become an official target within LLVM.
Currently the SPIR-V target within LLVM is treated as an experimental target but Intel compiler engineer Michal Paszkowski on the behalf of the Intel compiler team is looking to see the SPIR-V target to becoming promoted to officially supported.
They are looking to see the SPIR-V back-end for LLVM promoted from experimental to official status. This SPIR-V back-end has matured a lot and is seeing various use from different vendors. SPIR-V in this time has also continued working its way across the industry at large for different purposes from GPU compute to graphics with even being able to go the route of Microsoft’s HLSL / DirectX 12.
The LLVM SPIR-V back-end for compute kernels has OpenCL 3.0 conformance, its become a robust alternative to the SPIR-V LLVM Translator from The Khronos Group, and Intel uses this backend for their SYCL/DPC++ compiler and XPU backend. Looking ahead, the Intel compiler engineers note the idea of creating a SPIR-V consumer too within LLVM and other use-cases to come.
There is an LLVM Discourse discussion over raising the SPIR-V backend to becoming an official LLVM target and others have expressed positive interest in this idea too. This pull request is pending that would promote SPIR-V from experimental to official status within LLVM and in turn built by default. That pull sums up the SPIR-V highlights as:
“The SPIR-V backend is now an official LLVM target, providing OpenCL and SYCL conformance and establishing a foundation for broader applicability to other APIs, including Vulkan, GLSL, and HLSL. This backend aims to offer a unified approach for diverse compute and graphics workloads, providing a robust alternative to the Khronos SPIR-V LLVM Translator.”
Hopefully this promotion will take place in time for the LLVM 20 release in the early months of 2025.