[llvm] [AMDGPU] Scavenge a VGPR to eliminate a frame index (PR #166979)

Shilei Tian via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 9 09:37:57 PST 2025


================
@@ -2983,10 +2983,36 @@ bool SIRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
                   : RS->scavengeRegisterBackwards(AMDGPU::SReg_32_XM0RegClass,
                                                   MI, false, 0, !UseSGPR);
 
-      // TODO: for flat scratch another attempt can be made with a VGPR index
-      //       if no SGPRs can be scavenged.
-      if ((!TmpSReg && !FrameReg) || (!TmpReg && !UseSGPR))
+      if ((!TmpSReg && !FrameReg) || (!TmpReg && !UseSGPR)) {
+        if (ST.hasFlatScratchSVSMode()) {
+          int SVOpcode = AMDGPU::getFlatScratchInstSVfromSS(MI->getOpcode());
----------------
shiltian wrote:

`getFlatScratchInstSVfromSS` can return -1, so either assert it is not -1, or error out.

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


More information about the llvm-commits mailing list