[PATCH] D122367: [AMDGPU] [NFC] Introduce subtargets check for MI hardware.

Mahesha S via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 23 19:49:39 PDT 2022


hsmhsm created this revision.
hsmhsm added reviewers: rampitec, arsenm, foad, cdevadas.
Herald added subscribers: kerbowa, hiraditya, t-tye, tpr, dstuttard, yaxunl, nhaehnle, jvesely, kzhuravl.
Herald added a project: All.
hsmhsm requested review of this revision.
Herald added subscribers: llvm-commits, wdng.
Herald added a project: LLVM.

Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D122367

Files:
  llvm/lib/Target/AMDGPU/GCNSubtarget.h
  llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
  llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp


Index: llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -697,7 +697,7 @@
 
   // On GFX908, in order to guarantee copying between AGPRs, we need a scratch
   // VGPR available at all times.
-  if (ST.hasMAIInsts() && !ST.hasGFX90AInsts()) {
+  if (ST.isGFX908Subtarget()) {
     reserveRegisterTuples(Reserved, AMDGPU::VGPR32);
   }
 
Index: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
===================================================================
--- llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -551,8 +551,7 @@
                                RegScavenger &RS,
                                Register ImpDefSuperReg = Register(),
                                Register ImpUseSuperReg = Register()) {
-  assert((TII.getSubtarget().hasMAIInsts() &&
-          !TII.getSubtarget().hasGFX90AInsts()) &&
+  assert(TII.getSubtarget().isGFX908Subtarget() &&
          "Expected GFX908 subtarget.");
 
   assert((AMDGPU::SReg_32RegClass.contains(SrcReg) ||
Index: llvm/lib/Target/AMDGPU/GCNSubtarget.h
===================================================================
--- llvm/lib/Target/AMDGPU/GCNSubtarget.h
+++ llvm/lib/Target/AMDGPU/GCNSubtarget.h
@@ -990,6 +990,14 @@
   // hasGFX90AInsts is also true.
   bool hasGFX940Insts() const { return GFX940Insts; }
 
+  bool isGFX908Subtarget() const { return HasMAIInsts && !GFX90AInsts; };
+
+  bool isGFX90ASubtarget() const { return GFX90AInsts && !GFX940Insts; };
+
+  // TODO: We may need to update this condition in future based on future MI
+  // hardware which could be a superset of GFX940.
+  bool isGFX940Subtarget() const { return GFX940Insts; };
+
   /// Return the maximum number of waves per SIMD for kernels using \p SGPRs
   /// SGPRs
   unsigned getOccupancyWithNumSGPRs(unsigned SGPRs) const;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D122367.417817.patch
Type: text/x-patch
Size: 1958 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220324/34ae6444/attachment.bin>


More information about the llvm-commits mailing list