-
Notifications
You must be signed in to change notification settings - Fork 13.3k
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply) #123733
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SPIR-V] Add SPIRV to LLVM_ALL_TARGETS (reapply) #123733
Conversation
This commit promotes the SPIR-V backend from experimental to official status. As a result, SPIR-V will be built by default, simplifying integration and increasing accessibility for downstream projects. Discussion and RFC on Discourse: https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614
@llvm/pr-subscribers-github-workflow Author: Michal Paszkowski (michalpaszkowski) ChangesThis commit promotes the SPIR-V backend from experimental to official status. As a result, SPIR-V will be built by default, simplifying integration and increasing accessibility for downstream projects. Discussion and RFC on Discourse: https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614 Full diff: https://github.com/llvm/llvm-project/pull/123733.diff 4 Files Affected:
diff --git a/.github/workflows/spirv-tests.yml b/.github/workflows/spirv-tests.yml
index 34c77a398c1504..ea466dc6c52e57 100644
--- a/.github/workflows/spirv-tests.yml
+++ b/.github/workflows/spirv-tests.yml
@@ -25,5 +25,5 @@ jobs:
with:
build_target: check-llvm-codegen-spirv
projects:
- extra_cmake_args: '-DLLVM_TARGETS_TO_BUILD="" -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD="SPIRV" -DLLVM_INCLUDE_SPIRV_TOOLS_TESTS=ON'
+ extra_cmake_args: '-DLLVM_TARGETS_TO_BUILD="SPIRV" -DLLVM_INCLUDE_SPIRV_TOOLS_TESTS=ON'
os_list: '["ubuntu-22.04"]'
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
index f14065ab037990..ad12100fdb5b89 100644
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -486,6 +486,7 @@ set(LLVM_ALL_TARGETS
PowerPC
RISCV
Sparc
+ SPIRV
SystemZ
VE
WebAssembly
@@ -498,7 +499,6 @@ set(LLVM_ALL_EXPERIMENTAL_TARGETS
CSKY
DirectX
M68k
- SPIRV
Xtensa
)
diff --git a/llvm/Maintainers.md b/llvm/Maintainers.md
index 56457946136f04..534d81e68d0245 100644
--- a/llvm/Maintainers.md
+++ b/llvm/Maintainers.md
@@ -284,8 +284,11 @@ koachan@protonmail.com (email), [koachan](https://github.com/koachan) (GitHub)
#### SPIRV backend
-Ilia Diachkov \
-ilia.diachkov@gmail.com (email), [iliya-diyachkov](https://github.com/iliya-diyachkov) (GitHub)
+Vyacheslav Levytskyy \
+vyacheslav.levytskyy@intel.com, vyacheslav.levytskyy@gmail.com (email), [VyacheslavLevytskyy](https://github.com/VyacheslavLevytskyy) (GitHub)
+
+Nathan Gauër \
+brioche@google.com (email), [Keenuts](https://github.com/Keenuts) (GitHub)
#### SystemZ backend
diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md
index 8f88b824f965aa..48f962d212e86d 100644
--- a/llvm/docs/ReleaseNotes.md
+++ b/llvm/docs/ReleaseNotes.md
@@ -47,6 +47,12 @@ for adding a new subsection. -->
same semantics. The normalizer makes it easier to spot semantic differences
when diffing two modules which have undergone different passes.
+* 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.
+
* ...
<!-- If you would like to document a larger change, then you can add a
|
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/110/builds/3500 Here is the relevant piece of the build log for the reference
|
PR fixing the issue reported above: |
LLVM Buildbot has detected a new failure on builder Full details are available at: https://lab.llvm.org/buildbot/#/builders/146/builds/2130 Here is the relevant piece of the build log for the reference
|
I'm seeing this failure on i686:
Something not working correctly on 32-bit hosts? |
Not that we know about. |
Looks like the issue didn't occur in today's build, so some change in the meantime fixed it... |
Hm, looks like it's not fixed after all :( I'm now seeing the same failure on ppc64le and s390x as well, but it doesn't happen every time. |
It looks like parseSPIRVCommandLineOptions is calling cl::ParseCommandLineOptions. This is not legal, as the function isn't thread-safe. (Unless you intended SPIRVTranslateModule to not be thread-safe? In which case the tests can't be executed in paralle.) |
Thanks for the pointer! I'll have a look. |
This commit promotes the SPIR-V backend from experimental to official status. As a result, SPIR-V will be built by default, simplifying integration and increasing accessibility for downstream projects.
Discussion and RFC on Discourse: https://discourse.llvm.org/t/rfc-promoting-spir-v-to-an-official-target/83614
The PR reapplies the original patch #119653 and consecutive #123654, reverted due to buildbot failures.