mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-21 01:06:46 +00:00
[PEI] Simplify handling of targets with no phys regs. NFC
Make doSpillCalleeSavedRegs a member function, instead of passing most of the members of PEI as arguments. Differential Review: https://reviews.llvm.org/D35642 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317309 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
19a3ba35df
commit
ba9125e489
@ -76,12 +76,6 @@ using namespace llvm;
|
||||
|
||||
using MBBVector = SmallVector<MachineBasicBlock *, 4>;
|
||||
|
||||
static void spillCalleeSavedRegs(MachineFunction &MF, RegScavenger *RS,
|
||||
unsigned &MinCSFrameIndex,
|
||||
unsigned &MaxCXFrameIndex,
|
||||
const MBBVector &SaveBlocks,
|
||||
const MBBVector &RestoreBlocks);
|
||||
|
||||
namespace {
|
||||
|
||||
class PEI : public MachineFunctionPass {
|
||||
@ -125,6 +119,7 @@ private:
|
||||
|
||||
void calculateCallFrameInfo(MachineFunction &Fn);
|
||||
void calculateSaveRestoreBlocks(MachineFunction &Fn);
|
||||
void spillCalleeSavedRegs(MachineFunction &MF);
|
||||
|
||||
void calculateFrameObjectOffsets(MachineFunction &Fn);
|
||||
void replaceFrameIndices(MachineFunction &Fn);
|
||||
@ -197,8 +192,7 @@ bool PEI::runOnMachineFunction(MachineFunction &Fn) {
|
||||
|
||||
// Handle CSR spilling and restoring, for targets that need it.
|
||||
if (Fn.getTarget().usesPhysRegsForPEI())
|
||||
spillCalleeSavedRegs(Fn, RS, MinCSFrameIndex, MaxCSFrameIndex, SaveBlocks,
|
||||
RestoreBlocks);
|
||||
spillCalleeSavedRegs(Fn);
|
||||
|
||||
// Allow the target machine to make final modifications to the function
|
||||
// before the frame layout is finalized.
|
||||
@ -505,11 +499,7 @@ static void insertCSRRestores(MachineBasicBlock &RestoreBlock,
|
||||
}
|
||||
}
|
||||
|
||||
static void spillCalleeSavedRegs(MachineFunction &Fn, RegScavenger *RS,
|
||||
unsigned &MinCSFrameIndex,
|
||||
unsigned &MaxCSFrameIndex,
|
||||
const MBBVector &SaveBlocks,
|
||||
const MBBVector &RestoreBlocks) {
|
||||
void PEI::spillCalleeSavedRegs(MachineFunction &Fn) {
|
||||
// We can't list this requirement in getRequiredProperties because some
|
||||
// targets (WebAssembly) use virtual registers past this point, and the pass
|
||||
// pipeline is set up without giving the passes a chance to look at the
|
||||
|
Loading…
x
Reference in New Issue
Block a user