[clang] clang: Use correct triple when constructing offload bundler command (PR #195271)

Matt Arsenault via cfe-commits cfe-commits at lists.llvm.org
Fri May 1 07:50:32 PDT 2026


https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/195271

>From de99eefbfd75b738ce8c7a2de6e302941c688a18 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Fri, 1 May 2026 15:10:53 +0100
Subject: [PATCH] clang: Use correct triple when constructing offload bundler
 command

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.
---
 clang/lib/Driver/ToolChains/HIPUtility.cpp | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

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();
   }



More information about the cfe-commits mailing list