Open
Description
The goal is to keep intel/llvm's llvm-spirv on par with https://github.com/KhronosGroup/SPIRV-LLVM-Translator as much as possible. I'm not expecting it to be always on par, since some patches in https://github.com/KhronosGroup/SPIRV-LLVM-Translator requires appropriate update on devices' drivers in CI here, so the list should be updated.
Following patches are missing in this repository in comparison to https://github.com/KhronosGroup/SPIRV-LLVM-Translator :
- 1. Add SPIR-V 1.4 checks. It's going to be resolved by [SPIR-V] Cherry-pick of "Add SPIR-V 1.4 checks" #7493 , but it's blocked by GPU driver updates on windows.
- 2. Add an entry point wrapper around functions (llvm pass) . It depends on a patch 1.
- 3. Translate function attributes (incl. parameter attrs) for entry point kernels . It depends on a patch 2.
- 4. Fix the collection of entry point interfaces It depends on a patch 2.
- 5. Align translation of OpCooperativeMatrixLengthKHR to match the spec reverted in Revert "Align translation of
OpCooperativeMatrixLengthKHR
to match the spec" #17192 - 6. Translate icmp eq and icmp ne to PtrEqual and PtrNotEqual respectively reverted by c4be885
This repository adds extra code:
- 1. In SPIRVRegularizeLLVM.cpp we have a 'handling' of freeze instruction. We should either upstream W/A or implement a proper handling of the instruction in Khronos. See Unsupported instruction: freeze KhronosGroup/SPIRV-LLVM-Translator#1140 for reference.
- 2. This PR adds a W/A to replace GEP on ID-related builtin GVs with
extractelement
instruction. Need to remove it, when we have a fix in SPIR-V consumer propagated to intel/llvm's CI as part of driver updates. - 3. Added disable-spirv-tools LIT parameter to llvm-spirv tests to explicitly disable using spirv-tools in intel/llvm CI ([CI] Temporarily disable tests requiring
spirv-tools
in CI #16743). These changes will be reverted once the test failures are fixed.
This repository removes some code: