https://github.com/jhuber6 updated https://github.com/llvm/llvm-project/pull/185490
>From 51ae94c68d2f8cace2f52beb6797e5c092ce9d12 Mon Sep 17 00:00:00 2001 From: Joseph Huber <[email protected]> Date: Mon, 9 Mar 2026 13:35:24 -0500 Subject: [PATCH 1/2] [Clang] Do not emit multi-gpu warning if they are all the same Summary: This warning exists because if you do `-mcpu=native` in some contexts it may not be obvious which GPU you get. But if they are all the same then it really don't make a difference since we just pass the first one to `-mcpu` anyway. Relax this so it doesn't annoyingly warn on machines with more than one of the same GPU. --- clang/lib/Driver/ToolChains/AMDGPU.cpp | 4 ++-- clang/lib/Driver/ToolChains/Cuda.cpp | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp index f69c745680ee8..5f7bb25bf8919 100644 --- a/clang/lib/Driver/ToolChains/AMDGPU.cpp +++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp @@ -14,6 +14,7 @@ #include "clang/Driver/InputInfo.h" #include "clang/Driver/SanitizerArgs.h" #include "clang/Options/Options.h" +#include "llvm/ADT/SmallSet.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Option/ArgList.h" #include "llvm/Support/Error.h" @@ -735,11 +736,10 @@ AMDGPUToolChain::TranslateArgs(const DerivedArgList &Args, StringRef BoundArch, << llvm::toString(GPUsOrErr.takeError()) << "-mcpu"; } else { auto &GPUs = *GPUsOrErr; - if (GPUs.size() > 1) { + if (llvm::SmallSet<std::string, 1>(GPUs.begin(), GPUs.end()).size() > 1) getDriver().Diag(diag::warn_drv_multi_gpu_arch) << llvm::Triple::getArchTypeName(getArch()) << llvm::join(GPUs, ", ") << "-mcpu"; - } DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_mcpu_EQ), Args.MakeArgString(GPUs.front())); } diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index e0020176800fd..984ec6021046b 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/lib/Driver/ToolChains/Cuda.cpp @@ -15,6 +15,7 @@ #include "clang/Driver/Driver.h" #include "clang/Driver/InputInfo.h" #include "clang/Options/Options.h" +#include "llvm/ADT/SmallSet.h" #include "llvm/ADT/StringExtras.h" #include "llvm/Config/llvm-config.h" // for LLVM_HOST_TRIPLE #include "llvm/Option/ArgList.h" @@ -767,11 +768,12 @@ NVPTXToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, getDriver().Diag(diag::err_drv_undetermined_gpu_arch) << getArchName() << llvm::toString(GPUsOrErr.takeError()) << "-march"; } else { - if (GPUsOrErr->size() > 1) + auto &GPUs = *GPUsOrErr; + if (llvm::SmallSet<std::string, 1>(GPUs.begin(), GPUs.end()).size() > 1) getDriver().Diag(diag::warn_drv_multi_gpu_arch) << getArchName() << llvm::join(*GPUsOrErr, ", ") << "-march"; DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_march_EQ), - Args.MakeArgString(GPUsOrErr->front())); + Args.MakeArgString(GPUs.front())); } } >From 34392b4527948dd6987fc0d67f67180444f4780b Mon Sep 17 00:00:00 2001 From: Joseph Huber <[email protected]> Date: Mon, 23 Mar 2026 14:56:08 -0500 Subject: [PATCH 2/2] Update clang/lib/Driver/ToolChains/Cuda.cpp Co-authored-by: Jacob Lambert <[email protected]> --- clang/lib/Driver/ToolChains/Cuda.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp index 984ec6021046b..b4a89b4c12e2d 100644 --- a/clang/lib/Driver/ToolChains/Cuda.cpp +++ b/clang/lib/Driver/ToolChains/Cuda.cpp @@ -771,7 +771,7 @@ NVPTXToolChain::TranslateArgs(const llvm::opt::DerivedArgList &Args, auto &GPUs = *GPUsOrErr; if (llvm::SmallSet<std::string, 1>(GPUs.begin(), GPUs.end()).size() > 1) getDriver().Diag(diag::warn_drv_multi_gpu_arch) - << getArchName() << llvm::join(*GPUsOrErr, ", ") << "-march"; + << getArchName() << llvm::join(GPUs, ", ") << "-march"; DAL->AddJoinedArg(nullptr, Opts.getOption(options::OPT_march_EQ), Args.MakeArgString(GPUs.front())); } _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
