Changeset View
Changeset View
Standalone View
Standalone View
llvm/trunk/lib/Target/PowerPC/PPCFrameLowering.h
Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | class PPCFrameLowering: public TargetFrameLowering { | ||||
/** | /** | ||||
* Create branch instruction for PPC::TCRETURN* (tail call return) | * Create branch instruction for PPC::TCRETURN* (tail call return) | ||||
* | * | ||||
* \param[in] MBB that is terminated by PPC::TCRETURN* | * \param[in] MBB that is terminated by PPC::TCRETURN* | ||||
*/ | */ | ||||
void createTailCallBranchInstr(MachineBasicBlock &MBB) const; | void createTailCallBranchInstr(MachineBasicBlock &MBB) const; | ||||
/** | |||||
* Check if the conditions are correct to allow for the stack update | |||||
* to be moved past the CSR save/restore code. | |||||
*/ | |||||
bool stackUpdateCanBeMoved(MachineFunction &MF) const; | |||||
public: | public: | ||||
PPCFrameLowering(const PPCSubtarget &STI); | PPCFrameLowering(const PPCSubtarget &STI); | ||||
unsigned determineFrameLayout(MachineFunction &MF, | /** | ||||
bool UpdateMF = true, | * Determine the frame layout and update the machine function. | ||||
*/ | |||||
unsigned determineFrameLayoutAndUpdate(MachineFunction &MF, | |||||
bool UseEstimate = false) const; | bool UseEstimate = false) const; | ||||
/** | |||||
* Determine the frame layout but do not update the machine function. | |||||
* The MachineFunction object can be const in this case as it is not | |||||
* modified. | |||||
*/ | |||||
unsigned determineFrameLayout(const MachineFunction &MF, | |||||
bool UseEstimate = false, | |||||
unsigned *NewMaxCallFrameSize = nullptr) const; | |||||
/// emitProlog/emitEpilog - These methods insert prolog and epilog code into | /// emitProlog/emitEpilog - These methods insert prolog and epilog code into | ||||
/// the function. | /// the function. | ||||
void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | void emitPrologue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | ||||
void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | void emitEpilogue(MachineFunction &MF, MachineBasicBlock &MBB) const override; | ||||
bool hasFP(const MachineFunction &MF) const override; | bool hasFP(const MachineFunction &MF) const override; | ||||
bool needsFP(const MachineFunction &MF) const; | bool needsFP(const MachineFunction &MF) const; | ||||
void replaceFPWithRealFP(MachineFunction &MF) const; | void replaceFPWithRealFP(MachineFunction &MF) const; | ||||
▲ Show 20 Lines • Show All 66 Lines • Show Last 20 Lines |