@@ -146,44 +146,10 @@ AMDGPUResourceUsageAnalysis::analyzeResourceUsage(
146146 // count easily.
147147 // A tail call isn't considered a call for MachineFrameInfo's purposes.
148148 if (!FrameInfo.hasCalls () && !FrameInfo.hasTailCall ()) {
149- MCPhysReg HighestVGPRReg = AMDGPU::NoRegister;
150- for (MCPhysReg Reg : reverse (AMDGPU::VGPR_32RegClass.getRegisters ())) {
151- if (MRI.isPhysRegUsed (Reg)) {
152- HighestVGPRReg = Reg;
153- break ;
154- }
155- }
156-
157- if (ST.hasMAIInsts ()) {
158- MCPhysReg HighestAGPRReg = AMDGPU::NoRegister;
159- for (MCPhysReg Reg : reverse (AMDGPU::AGPR_32RegClass.getRegisters ())) {
160- if (MRI.isPhysRegUsed (Reg)) {
161- HighestAGPRReg = Reg;
162- break ;
163- }
164- }
165- Info.NumAGPR = HighestAGPRReg == AMDGPU::NoRegister
166- ? 0
167- : TRI.getHWRegIndex (HighestAGPRReg) + 1 ;
168- }
169-
170- MCPhysReg HighestSGPRReg = AMDGPU::NoRegister;
171- for (MCPhysReg Reg : reverse (AMDGPU::SGPR_32RegClass.getRegisters ())) {
172- if (MRI.isPhysRegUsed (Reg)) {
173- HighestSGPRReg = Reg;
174- break ;
175- }
176- }
177-
178- // We found the maximum register index. They start at 0, so add one to get
179- // the number of registers.
180- Info.NumVGPR = HighestVGPRReg == AMDGPU::NoRegister
181- ? 0
182- : TRI.getHWRegIndex (HighestVGPRReg) + 1 ;
183- Info.NumExplicitSGPR = HighestSGPRReg == AMDGPU::NoRegister
184- ? 0
185- : TRI.getHWRegIndex (HighestSGPRReg) + 1 ;
186-
149+ Info.NumVGPR = TRI.getNumUsedPhysRegs (MRI, AMDGPU::VGPR_32RegClass);
150+ Info.NumExplicitSGPR = TRI.getNumUsedPhysRegs (MRI, AMDGPU::SGPR_32RegClass);
151+ if (ST.hasMAIInsts ())
152+ Info.NumAGPR = TRI.getNumUsedPhysRegs (MRI, AMDGPU::AGPR_32RegClass);
187153 return Info;
188154 }
189155
0 commit comments