[clang] [llvm] Reapply "clang: Use TargetID parsing from AMDGPUTargetParser" (#213824) (PR #231420)

Chinmay Deshpande via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 13 08:49:05 PDT 2026


================
@@ -473,12 +473,18 @@ class LLVM_LIBRARY_VISIBILITY AMDGPUTargetInfo final : public TargetInfo {
         CUMode = false;
       else if (F == "+image-insts")
         HasImage = true;
-      bool IsOn = F.front() == '+';
+      llvm::AMDGPU::TargetIDSetting Setting =
+          F.front() == '+' ? llvm::AMDGPU::TargetIDSetting::On
+                           : llvm::AMDGPU::TargetIDSetting::Off;
       StringRef Name = StringRef(F).drop_front();
-      if (!llvm::is_contained(TargetIDFeatures, Name))
-        continue;
-      assert(!OffloadArchFeatures.contains(Name));
-      OffloadArchFeatures[Name] = IsOn;
+      // xnack is a valid target-id modifier only when the processor supports
+      // on/off modes; sramecc when the processor supports sramecc.
+      if (Name == "xnack" &&
+          ArchFeatures.test(llvm::AMDGPU::FEAT_XNACK_ON_OFF_MODES))
+        XnackSetting = Setting;
+      else if (Name == "sramecc" &&
+               ArchFeatures.test(llvm::AMDGPU::FEAT_SRAMECC_SUPPORT))
----------------
chinmaydd wrote:

This should use `SRAMECC_ON_OFF_MODES` ?

https://github.com/llvm/llvm-project/pull/231420


More information about the cfe-commits mailing list