[llvm] [X86][CodeGen] Teach frame lowering to spill/reload registers w/ PUSHP/POPP, PUSH2[P]/POP2[P] (PR #73292)

Phoebe Wang via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 27 00:54:40 PST 2023


================
@@ -2958,15 +3066,30 @@ bool X86FrameLowering::restoreCalleeSavedRegisters(
   }
 
   // POP GPRs.
-  unsigned Opc = STI.is64Bit() ? X86::POP64r : X86::POP32r;
+  MachineInstrBuilder MIB;
+  bool IncompletePop2 = false;
----------------
phoebewang wrote:

It can simplify for Push2Pop2 at least, e.g.,
```
if (X86FI->isCandidateForPush2Pop2(Reg)) {
  MIB = BuildMI(MBB, MI, DL, TII.get(getPOP2Opcode(STI)), Reg)
            .addReg(++I->getReg())
            .setMIFlag(MachineInstr::FrameDestroy);
}
```

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


More information about the llvm-commits mailing list