[llvm] [AMDGPU] Skip register uses in AMDGPUResourceUsageAnalysis (PR #133242)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu May 1 07:16:06 PDT 2025


================
@@ -4053,6 +4053,21 @@ SIRegisterInfo::getNumUsedPhysRegs(const MachineRegisterInfo &MRI,
   return 0;
 }
 
+unsigned
+SIRegisterInfo::getNumDefinedPhysRegs(const MachineRegisterInfo &MRI,
+                                      const TargetRegisterClass &RC) const {
+  auto isDefinedByImplicitDef = [](MachineOperand &Op) {
+    return Op.getParent()->isImplicitDef();
+  };
+
+  for (MCPhysReg Reg : reverse(RC.getRegisters()))
+    for (MCRegAliasIterator AI(Reg, this, true); AI.isValid(); ++AI)
+      if (!(MRI.def_empty(*AI) || std::all_of(MRI.def_begin(*AI), MRI.def_end(),
----------------
arsenm wrote:

def_empty is redundant. Also use all_of(MRI.def_instructions()), you don't care about the specific def operands 

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


More information about the llvm-commits mailing list