https://github.com/wenju-he updated 
https://github.com/llvm/llvm-project/pull/199623

>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

Reply via email to