[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