Author: Matt Arsenault Date: 2026-06-22T14:15:42+02:00 New Revision: f8cb6be61b995fc64d696c42fdb3eb88d2ed3a9e
URL: https://github.com/llvm/llvm-project/commit/f8cb6be61b995fc64d696c42fdb3eb88d2ed3a9e DIFF: https://github.com/llvm/llvm-project/commit/f8cb6be61b995fc64d696c42fdb3eb88d2ed3a9e.diff LOG: clang: Use the effective triple string for offload jobs (#205065) Track the future effective triple for the job, rather than the toolchain's default triple. In the future this will change the result when amdgpu starts adjusting the triples to contain subarches. Added: Modified: clang/lib/Driver/ToolChains/Clang.cpp Removed: ################################################################################ diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index 906abd1474b6c..ca924ccf9152d 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -9395,9 +9395,11 @@ void OffloadBundler::ConstructJob(Compilation &C, const JobAction &JA, } Triples += Action::GetOffloadKindName(CurKind); Triples += '-'; - Triples += - CurTC->getTriple().normalize(llvm::Triple::CanonicalForm::FOUR_IDENT); - if (CurKind != Action::OFK_Host && + Triples += llvm::Triple(CurTC->ComputeEffectiveClangTriple( + TCArgs, CurDep->getOffloadingArch())) + .normalize(llvm::Triple::CanonicalForm::FOUR_IDENT); + + if ((CurKind != Action::OFK_Host) && !StringRef(CurDep->getOffloadingArch()).empty()) { Triples += '-'; Triples += CurDep->getOffloadingArch(); @@ -9473,9 +9475,12 @@ void OffloadBundler::ConstructJobMultipleOutputs( auto &Dep = DepInfo[I]; Triples += Action::GetOffloadKindName(Dep.DependentOffloadKind); Triples += '-'; - Triples += Dep.DependentToolChain->getTriple().normalize( - llvm::Triple::CanonicalForm::FOUR_IDENT); - if (Dep.DependentOffloadKind != Action::OFK_Host && + Triples += llvm::Triple(Dep.DependentToolChain->ComputeEffectiveClangTriple( + TCArgs, Dep.DependentBoundArch)) + .normalize(llvm::Triple::CanonicalForm::FOUR_IDENT); + + if ((Dep.DependentOffloadKind == Action::OFK_HIP || + Dep.DependentOffloadKind == Action::OFK_Cuda) && !Dep.DependentBoundArch.empty()) { Triples += '-'; Triples += Dep.DependentBoundArch; @@ -9544,7 +9549,7 @@ void OffloadPackager::ConstructJob(Compilation &C, const JobAction &JA, // linker wrapper. SmallVector<std::string> Parts{ "file=" + File.str(), - "triple=" + TC->getTripleString().str(), + "triple=" + TC->ComputeEffectiveClangTriple(TCArgs, Arch), "arch=" + (Arch.empty() ? "generic" : Arch.str()), "kind=" + Kind.str(), }; _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
