Author: Alex Voicu
Date: 2025-11-07T02:01:31+02:00
New Revision: 16ca2eb77b2cf1d129747d37f3e3da1f4b9c8365

URL: 
https://github.com/llvm/llvm-project/commit/16ca2eb77b2cf1d129747d37f3e3da1f4b9c8365
DIFF: 
https://github.com/llvm/llvm-project/commit/16ca2eb77b2cf1d129747d37f3e3da1f4b9c8365.diff

LOG: [NFC][CUDA][HIP] Print the triple when there's no mcpu (#166565)

It is possible to run into situations where no mcpu is specified for an offload 
device side compilation. Currently, this'd lead to a rather uninformative blank 
being presented as the target for a failing compilation, when messaging the 
error count. This patch changes things so that if there is no `-mcpu` we print 
the triple, which is slightly more helpful, especially when there are multiple 
offload targets for a single compilation.

Added: 
    

Modified: 
    clang/lib/Frontend/CompilerInstance.cpp
    clang/test/SemaCUDA/error-includes-mode.cu

Removed: 
    


################################################################################
diff  --git a/clang/lib/Frontend/CompilerInstance.cpp 
b/clang/lib/Frontend/CompilerInstance.cpp
index 6b09f7f9fc1e3..8034ce9c3f221 100644
--- a/clang/lib/Frontend/CompilerInstance.cpp
+++ b/clang/lib/Frontend/CompilerInstance.cpp
@@ -1058,7 +1058,9 @@ void CompilerInstance::printDiagnosticStats() {
       if (!getLangOpts().CUDAIsDevice) {
         OS << " when compiling for host";
       } else {
-        OS << " when compiling for " << getTargetOpts().CPU;
+        OS << " when compiling for "
+           << (!getTargetOpts().CPU.empty() ? getTargetOpts().CPU
+                                            : getTarget().getTriple().str());
       }
     }
     OS << ".\n";

diff  --git a/clang/test/SemaCUDA/error-includes-mode.cu 
b/clang/test/SemaCUDA/error-includes-mode.cu
index 257fdeceef654..f775e656b07a1 100644
--- a/clang/test/SemaCUDA/error-includes-mode.cu
+++ b/clang/test/SemaCUDA/error-includes-mode.cu
@@ -1,7 +1,16 @@
 // RUN: not %clang_cc1 -fsyntax-only %s 2>&1 | FileCheck --check-prefix HOST %s
 // RUN: not %clang_cc1 -triple nvptx-unknown-unknown -target-cpu sm_35 \
 // RUN:   -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix 
SM35 %s
+// RUN: not %clang_cc1 -triple spirv64-unknown-unknown \
+// RUN:   -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix 
SPIRV %s
+// RUN: not %clang_cc1 -triple spirv64-amd-amdhsa \
+// RUN:   -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix 
AMDGCNSPIRV %s
+// RUN: not %clang_cc1 -triple spirv64-intel-unknown \
+// RUN:   -fcuda-is-device -fsyntax-only %s 2>&1 | FileCheck --check-prefix 
INTELSPIRV %s
 
 // HOST: 1 error generated when compiling for host
 // SM35: 1 error generated when compiling for sm_35
+// SPIRV: 1 error generated when compiling for spirv64-unknown-unknown
+// AMDGCNSPIRV: 1 error generated when compiling for spirv64-amd-amdhsa
+// INTELSPIRV: 1 error generated when compiling for spirv64-intel-unknown
 error;


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to