[clang] [Clang] Use SPIRVToolChain for Mesa3D if target is SPIR-V (PR #199623)
via cfe-commits
cfe-commits at lists.llvm.org
Tue May 26 01:08:33 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: Wenju He (wenju-he)
<details>
<summary>Changes</summary>
spirv*-mesa-mesa3d are legal clang targets since 3c6fe49. They should not use AMDGPU toolchain.
---
Full diff: https://github.com/llvm/llvm-project/pull/199623.diff
2 Files Affected:
- (modified) clang/lib/Driver/Driver.cpp (+6-1)
- (modified) clang/test/Driver/spirv-toolchain.cl (+12)
``````````diff
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 4a968a4ce5cc0..0821034628415 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -7137,9 +7137,14 @@ const ToolChain &Driver::getToolChain(const ArgList &Args,
break;
}
case llvm::Triple::AMDPAL:
- case llvm::Triple::Mesa3D:
TC = std::make_unique<toolchains::AMDGPUToolChain>(*this, Target, Args);
break;
+ case llvm::Triple::Mesa3D:
+ if (Target.isSPIRV())
+ TC = std::make_unique<toolchains::SPIRVToolChain>(*this, Target, Args);
+ else
+ TC = std::make_unique<toolchains::AMDGPUToolChain>(*this, Target, Args);
+ break;
case llvm::Triple::UEFI:
TC = std::make_unique<toolchains::UEFI>(*this, Target, Args);
break;
diff --git a/clang/test/Driver/spirv-toolchain.cl b/clang/test/Driver/spirv-toolchain.cl
index 6fd71caf2fddb..287941972253c 100644
--- a/clang/test/Driver/spirv-toolchain.cl
+++ b/clang/test/Driver/spirv-toolchain.cl
@@ -109,3 +109,15 @@
// RUN: | FileCheck -DVERSION=%llvm-version-major --check-prefix=VERSIONED %s %}
// VERSIONED: {{.*}}spirv-as-[[VERSION]]
+
+//-----------------------------------------------------------------------------
+// Check warning
+// RUN: %clang -### --target=spirv32-unknown-mesa3d -x cl -c %s 2>&1 | FileCheck --check-prefix=MESA3D-SPIRV32 %s
+// RUN: %clang -### --target=spirv64-unknown-mesa3d -x cl -c %s 2>&1 | FileCheck --check-prefix=MESA3D-SPIRV64 %s
+// MESA3D-SPIRV32: "-cc1" "-triple" "spirv32-unknown-mesa3d"
+// MESA3D-SPIRV32-NOT: "-Werror=atomic-alignment"
+// MESA3D-SPIRV64: "-cc1" "-triple" "spirv64-unknown-mesa3d"
+// MESA3D-SPIRV64-NOT: "-Werror=atomic-alignment"
+
+// RUN: %clang -### --target=amdgcn-amd-mesa3d -x cl -c %s 2>&1 | FileCheck --check-prefix=AMDGCN-MESA3D %s
+// AMDGCN-MESA3D: "-Werror=atomic-alignment"
``````````
</details>
https://github.com/llvm/llvm-project/pull/199623
More information about the cfe-commits
mailing list