mirror of
https://github.com/compiler-explorer/compiler-explorer.git
synced 2025-12-27 07:04:04 -05:00
for https://github.com/compiler-explorer/compiler-explorer/issues/2331 Hey, so I am currently trying to improve the SPIR-V ecosystem, in-charge of the [SPIR-V Guide](https://github.com/KhronosGroup/SPIRV-Guide), and part of the SPIR-V Working Group. We talked at our last Face-2-Face gathering about getting more support for GPU tooling in something like Compiler Explorer because you have all made this such an amazing tool! I have enjoyed working in this codebase and happy to help keep improving the SPIR-V as people find issues or want enhancements (I was already about to spend time rebuilding Compiler Explorer, so happy to donate my time to a single tool's effort) (For those who haven't spent last few years staring at SPIR-V) - SPIR-V is a an IR (very much like LLVM IR) but for GPUs - SPIR-V can be used for Graphics and Compute - Compute: - Can be tied to things like clang, llvm, mlir, OpenCL, etc - One could take `spirv` as a language and compile it to something like x86 - (Future PRs for this realm of things) - Graphics: - Much harder to actually "compile" to any ISA because other graphics pipeline information is missing that will effect the final ISA - Microsoft has even now planned to move to [SPIR-V for DirectX soon](https://devblogs.microsoft.com/directx/directx-adopting-spir-v/) - Both: - There are many tools that run on SPIR-V regardless (hence why they share the same IR) - Being able to do tooling in compiler explorer would be AMAZING This PR adds `SPIR-V` as a language and a new `SPIRV-Tools` compiler as an initial compiler for it the language (since we already have the SPIRV-Tools repo being pulled in on the infra side!) I personally use `spirv-opt` and `spirv-val` the most and have been testing this locally for a few days and feel it is ready to go. I plan to slowly add more tools (ex. `spirv-fuzz`, `spirv-cross`, `spirv-reflect`, etc) Cheers! (some screenshots of course)  