================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to