[llvm] [AMDGPU] Speed up SIRegisterInfo::getReservedRegs (PR #79610)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 26 08:19:16 PST 2024


================
@@ -693,20 +699,29 @@ BitVector SIRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
     }
   }
 
-  for (unsigned i = MaxNumVGPRs; i < TotalNumVGPRs; ++i) {
-    unsigned Reg = AMDGPU::VGPR_32RegClass.getRegister(i);
-    reserveRegisterTuples(Reserved, Reg);
+  for (const TargetRegisterClass *RC : regclasses()) {
+    if (RC->isBaseClass() && isVGPRClass(RC)) {
+      unsigned NumRegs = divideCeil(getRegSizeInBits(*RC), 32);
+      for (MCPhysReg Reg : *RC) {
----------------
jayfoad wrote:

It would need adjusting for the Aligned classes. And in general I wasn't sure whether iterating RC is guaranteed to give you registers in order, and does that guarantee that HWRegIndex will also be in order?

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


More information about the llvm-commits mailing list