[clang] [NFC][CUDA][HIP] Print the triple when there's no mcpu (PR #166565)
Alex Voicu via cfe-commits
cfe-commits at lists.llvm.org
Wed Nov 5 06:07:38 PST 2025
https://github.com/AlexVlx created https://github.com/llvm/llvm-project/pull/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.
>From f1a56e2a45240ddaa457e5f28dd0f3c4e136450d Mon Sep 17 00:00:00 2001
From: Alex Voicu <alexandru.voicu at amd.com>
Date: Wed, 5 Nov 2025 13:52:43 +0000
Subject: [PATCH] Print out the offload triple when there's no `mcpu`
available.
---
clang/lib/Frontend/CompilerInstance.cpp | 6 +++++-
clang/test/SemaCUDA/error-includes-mode.cu | 9 +++++++++
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/clang/lib/Frontend/CompilerInstance.cpp b/clang/lib/Frontend/CompilerInstance.cpp
index 6b09f7f9fc1e3..f8df204cf4618 100644
--- a/clang/lib/Frontend/CompilerInstance.cpp
+++ b/clang/lib/Frontend/CompilerInstance.cpp
@@ -1058,7 +1058,11 @@ void CompilerInstance::printDiagnosticStats() {
if (!getLangOpts().CUDAIsDevice) {
OS << " when compiling for host";
} else {
- OS << " when compiling for " << getTargetOpts().CPU;
+ OS << " when compiling for ";
+ if (getTargetOpts().CPU.empty())
+ OS << getTarget().getTriple().str();//"SPIR-V";
+ else
+ OS << getTargetOpts().CPU;
}
}
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;
More information about the cfe-commits
mailing list