[llvm] [AMDGPU] Convert SVS form scratch frame index fallback into SV form (PR #219239)

Lukas Sommer via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 28 05:45:21 PDT 2026


================
@@ -3285,12 +3287,36 @@ bool SIRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
           auto [ImmOffset, RemainderOffset] =
               TII->splitFlatOffset(FullOffset, AMDGPUAS::PRIVATE_ADDRESS,
                                    AMDGPU::FlatAddrSpace::FlatScratch);
-          BuildMI(*MBB, MI, DL, TII->get(AMDGPU::V_MOV_B32_e32), TmpVGPR)
-              .addImm(RemainderOffset);
+
+          Register UsedVAddr;
+          if (MachineOperand *VAddr =
+                  TII->getNamedOperand(*MI, AMDGPU::OpName::vaddr)) {
+            MachineOperand *VData =
+                TII->getNamedOperand(*MI, AMDGPU::OpName::vdata);
+            bool CanReuseVAddr = VAddr->isKill() &&
+                                 !(VData && VAddr->getReg() == VData->getReg());
+
+            // SVS form: add RemainderOffset to vaddr.
+            Register Src = VAddr->getReg();
----------------
sommerlukas wrote:

```suggestion
             // SVS form: add RemainderOffset to vaddr.
            Register Src = VAddr->getReg();
            bool CanReuseVAddr = VAddr->isKill() &&
                                 !(VData && Src == VData->getReg());           
```

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


More information about the llvm-commits mailing list