[clang] clang/AMDGPU: Merge toolchain subclasses (PR #204863)
Joseph Huber via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 8 13:54:42 PDT 2026
================
@@ -738,24 +753,41 @@ AMDGPUToolChain::TranslateArgs(const DerivedArgList &Args, BoundArch BA,
BA.ArchName);
}
- AMDGPUToolChain::ParsedTargetIDType PTID = checkTargetID(*DAL);
+ if (!getTriple().isSPIRV()) {
+ AMDGPUToolChain::ParsedTargetIDType PTID = checkTargetID(*DAL);
- // Synthesize feature flags for target ID modifiers (xnack, sramecc).
- if (PTID.OptionalFeatureMap) {
- const llvm::StringMap<bool> &FeatureMap = *PTID.OptionalFeatureMap;
+ // Synthesize feature flags for target ID modifiers (xnack, sramecc).
+ if (PTID.OptionalFeatureMap) {
+ const llvm::StringMap<bool> &FeatureMap = *PTID.OptionalFeatureMap;
+
+ auto XnackIt = FeatureMap.find("xnack");
+ if (XnackIt != FeatureMap.end()) {
+ DAL->AddFlagArg(nullptr, Opts.getOption(XnackIt->second
+ ? options::OPT_mxnack
+ : options::OPT_mno_xnack));
+ }
- auto XnackIt = FeatureMap.find("xnack");
- if (XnackIt != FeatureMap.end()) {
- DAL->AddFlagArg(nullptr,
- Opts.getOption(XnackIt->second ? options::OPT_mxnack
- : options::OPT_mno_xnack));
+ auto SrameccIt = FeatureMap.find("sramecc");
+ if (SrameccIt != FeatureMap.end()) {
+ DAL->AddFlagArg(nullptr,
+ Opts.getOption(SrameccIt->second
+ ? options::OPT_msramecc
+ : options::OPT_mno_sramecc));
+ }
}
+ }
- auto SrameccIt = FeatureMap.find("sramecc");
- if (SrameccIt != FeatureMap.end()) {
- DAL->AddFlagArg(nullptr, Opts.getOption(SrameccIt->second
- ? options::OPT_msramecc
- : options::OPT_mno_sramecc));
+ // Filter out sanitizer coverage options that are not supported for AMDGPU.
+ for (Arg *A : Args) {
+ // Sanitizer coverage is currently not supported for AMDGPU.
+ if (A->getOption().matches(options::OPT_fsan_cov_Group)) {
+ // Upgrade to error if the option was explicitly specified for device
+ bool IsExplicitDevice =
----------------
jhuber6 wrote:
Not related to PR, but why do we need to check this here? The whole point of the `-Xarch` options is that they filter out the `getArgsForToolchain`, which is supposed to be where we check things like sanitizer support.
https://github.com/llvm/llvm-project/pull/204863
More information about the cfe-commits
mailing list