https://github.com/wenju-he created https://github.com/llvm/llvm-project/pull/199623
spirv*-mesa-mesa3d are legal clang targets since 3c6fe49. They should not use AMDGPU toolchain. >From 2b2a7aa3303b186c6396b842d70f94309284161a Mon Sep 17 00:00:00 2001 From: Wenju He <[email protected]> Date: Tue, 26 May 2026 09:46:54 +0200 Subject: [PATCH] [Clang] Use SPIRVToolChain for Mesa3D if target is SPIR-V spirv*-mesa-mesa3d are legal clang targets since 3c6fe49. They should not use AMDGPU toolchain. --- clang/lib/Driver/Driver.cpp | 7 ++++++- clang/test/Driver/spirv-toolchain.cl | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) 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" _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
