Author: Matt Arsenault Date: 2026-03-30T14:37:05+02:00 New Revision: 10b49bc56988b32d240e4bd74ca3c790eed65ecd
URL: https://github.com/llvm/llvm-project/commit/10b49bc56988b32d240e4bd74ca3c790eed65ecd DIFF: https://github.com/llvm/llvm-project/commit/10b49bc56988b32d240e4bd74ca3c790eed65ecd.diff LOG: clang: Return Triple from OffloadArchToTriple instead of a string (#189343) Also stop bothering to call normalizeOffloadTriple. This was produced by code which should always produce normalized triples. Added: Modified: clang/include/clang/Basic/OffloadArch.h clang/lib/Basic/OffloadArch.cpp clang/lib/Driver/Driver.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Basic/OffloadArch.h b/clang/include/clang/Basic/OffloadArch.h index 531e5e37935eb..ca97fb166d8fc 100644 --- a/clang/include/clang/Basic/OffloadArch.h +++ b/clang/include/clang/Basic/OffloadArch.h @@ -152,8 +152,8 @@ const char *OffloadArchToVirtualArchString(OffloadArch A); // OffloadArch::Unknown if the string is not recognized. OffloadArch StringToOffloadArch(llvm::StringRef S); -llvm::StringRef OffloadArchToTriple(const llvm::Triple &DefaultToolchainTriple, - OffloadArch ID); +llvm::Triple OffloadArchToTriple(const llvm::Triple &DefaultToolchainTriple, + OffloadArch ID); } // namespace clang diff --git a/clang/lib/Basic/OffloadArch.cpp b/clang/lib/Basic/OffloadArch.cpp index d15df3deca74b..3cd1a50d7a839 100644 --- a/clang/lib/Basic/OffloadArch.cpp +++ b/clang/lib/Basic/OffloadArch.cpp @@ -147,19 +147,20 @@ OffloadArch StringToOffloadArch(llvm::StringRef S) { return Result->Arch; } -llvm::StringRef OffloadArchToTriple(const llvm::Triple &DefaultToolchainTriple, - OffloadArch ID) { +llvm::Triple OffloadArchToTriple(const llvm::Triple &DefaultToolchainTriple, + OffloadArch ID) { if (ID == OffloadArch::AMDGCNSPIRV) - return "spirv64-amd-amdhsa"; + return llvm::Triple("spirv64-amd-amdhsa"); if (IsNVIDIAOffloadArch(ID)) - return DefaultToolchainTriple.isArch64Bit() ? "nvptx64-nvidia-cuda" - : "nvptx-nvidia-cuda"; + return DefaultToolchainTriple.isArch64Bit() + ? llvm::Triple("nvptx64-nvidia-cuda") + : llvm::Triple("nvptx-nvidia-cuda"); if (IsAMDOffloadArch(ID)) - return "amdgcn-amd-amdhsa"; + return llvm::Triple("amdgcn-amd-amdhsa"); - return ""; + return {}; } } // namespace clang diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp index 32c95222d248d..0686a89d42faf 100644 --- a/clang/lib/Driver/Driver.cpp +++ b/clang/lib/Driver/Driver.cpp @@ -997,12 +997,8 @@ static TripleSet inferOffloadToolchains(Compilation &C, return {}; } - llvm::StringRef TripleStr = + llvm::Triple Triple = OffloadArchToTriple(C.getDefaultToolChain().getTriple(), ID); - if (TripleStr.empty()) - continue; - - llvm::Triple Triple = ToolChain::normalizeOffloadTriple(TripleStr); // Make a new argument that dispatches this argument to the appropriate // toolchain. This is required when we infer it and create potentially _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
