[clang] 9a625ab - clang: Use correct triple when constructing offload bundler command (#195271)
via cfe-commits
cfe-commits at lists.llvm.org
Fri May 1 08:33:29 PDT 2026
Author: Matt Arsenault
Date: 2026-05-01T15:33:25Z
New Revision: 9a625ab49c123cc6750a214591286f44f2e27003
URL: https://github.com/llvm/llvm-project/commit/9a625ab49c123cc6750a214591286f44f2e27003
DIFF: https://github.com/llvm/llvm-project/commit/9a625ab49c123cc6750a214591286f44f2e27003.diff
LOG: clang: Use correct triple when constructing offload bundler command (#195271)
Use the toolchain triple for the particular input instead of the top
level toolchain. NFC for now, but avoids mismatched triples in
a future change.
Added:
Modified:
clang/lib/Driver/ToolChains/HIPUtility.cpp
clang/test/Driver/hip-toolchain-no-rdc.hip
Removed:
################################################################################
diff --git a/clang/lib/Driver/ToolChains/HIPUtility.cpp b/clang/lib/Driver/ToolChains/HIPUtility.cpp
index 3bf0f23409f9f..51e1ba1866009 100644
--- a/clang/lib/Driver/ToolChains/HIPUtility.cpp
+++ b/clang/lib/Driver/ToolChains/HIPUtility.cpp
@@ -301,18 +301,20 @@ void HIP::constructHIPFatbinCommand(Compilation &C, const JobAction &JA,
// for backward compatibility. For code object version 4 and greater, the
// offload kind in bundle ID is 'hipv4'.
std::string OffloadKind = "hip";
- auto &TT = T.getToolChain().getTriple();
- if (TT.isAMDGCN() && getAMDGPUCodeObjectVersion(C.getDriver(), Args) >= 4)
+ if (T.getToolChain().getTriple().isAMDGCN() &&
+ getAMDGPUCodeObjectVersion(C.getDriver(), Args) >= 4)
OffloadKind = OffloadKind + "v4";
for (const auto &II : Inputs) {
const auto *A = II.getAction();
+ const llvm::Triple &InputTriple = A->getOffloadingToolChain()->getTriple();
+
auto ArchStr = llvm::StringRef(A->getOffloadingArch());
BundlerTargetArg += ',' + OffloadKind + '-';
if (ArchStr == "amdgcnspirv")
BundlerTargetArg +=
normalizeForBundler(llvm::Triple("spirv64-amd-amdhsa"), true);
else
- BundlerTargetArg += normalizeForBundler(TT, !ArchStr.empty());
+ BundlerTargetArg += normalizeForBundler(InputTriple, !ArchStr.empty());
if (!ArchStr.empty())
BundlerTargetArg += '-' + ArchStr.str();
}
diff --git a/clang/test/Driver/hip-toolchain-no-rdc.hip b/clang/test/Driver/hip-toolchain-no-rdc.hip
index d3748c24eac7e..975515bd0cb40 100644
--- a/clang/test/Driver/hip-toolchain-no-rdc.hip
+++ b/clang/test/Driver/hip-toolchain-no-rdc.hip
@@ -218,7 +218,7 @@
// AMDGCNSPIRV: "-cc1" "-triple" "amdgcn-amd-amdhsa" {{.*}}"-emit-obj" {{.*}}"-target-cpu" "gfx900"{{.*}} "-o" "[[GFX900_OBJ:.*o]]"
// AMDGCNSPIRV: {{".*lld.*"}} {{.*}}"-plugin-opt=mcpu=gfx900" {{.*}} "-o" "[[GFX900_CO:.*out]]" {{.*}}"[[GFX900_OBJ]]"
// AMDGCNSPIRV: {{".*clang-offload-bundler.*"}} "-type=o"
-// AMDGCNSPIRV-SAME: "-targets={{.*}}hip-spirv64-amd-amdhsa--amdgcnspirv,hip-spirv64-amd-amdhsa--gfx900"
+// AMDGCNSPIRV-SAME: "-targets={{.*}}hip-spirv64-amd-amdhsa--amdgcnspirv,hip-amdgcn-amd-amdhsa--gfx900"
// AMDGCNSPIRV-SAME: "-input=[[AMDGCNSPV_CO]]" "-input=[[GFX900_CO]]"
// AMDGCNSPIRV-NEW: "-cc1" "-triple" "spirv64-amd-amdhsa" {{.*}}"-emit-llvm-bc" {{.*}} "-o" "[[AMDGCNSPV_BC:.*bc]]"
More information about the cfe-commits
mailing list