Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/ARM/ARMBaseInstrInfo.h
Show First 20 Lines • Show All 371 Lines • ▼ Show 20 Lines | return MI->getOpcode() == ARM::t2LoopEndDec || | ||||
MI->getOpcode() == ARM::t2WhileLoopStartTP; | MI->getOpcode() == ARM::t2WhileLoopStartTP; | ||||
} | } | ||||
private: | private: | ||||
/// Returns an unused general-purpose register which can be used for | /// Returns an unused general-purpose register which can be used for | ||||
/// constructing an outlined call if one exists. Returns 0 otherwise. | /// constructing an outlined call if one exists. Returns 0 otherwise. | ||||
unsigned findRegisterToSaveLRTo(const outliner::Candidate &C) const; | unsigned findRegisterToSaveLRTo(const outliner::Candidate &C) const; | ||||
// Adds an instruction which saves the link register on top of the stack into | /// Adds an instruction which saves the link register on top of the stack into | ||||
/// the MachineBasicBlock \p MBB at position \p It. | /// the MachineBasicBlock \p MBB at position \p It. If \p Auth is true, | ||||
void saveLROnStack(MachineBasicBlock &MBB, | /// compute and store an authentication code alongiside the link register. | ||||
MachineBasicBlock::iterator It) const; | /// If \p CFI is true, emit CFI instructions. | ||||
void saveLROnStack(MachineBasicBlock &MBB, MachineBasicBlock::iterator It, | |||||
bool CFI, bool Auth) const; | |||||
/// Adds an instruction which restores the link register from the top the | /// Adds an instruction which restores the link register from the top the | ||||
/// stack into the MachineBasicBlock \p MBB at position \p It. | /// stack into the MachineBasicBlock \p MBB at position \p It. If \p Auth is | ||||
/// true, restore an authentication code and authenticate LR. | |||||
/// If \p CFI is true, emit CFI instructions. | |||||
void restoreLRFromStack(MachineBasicBlock &MBB, | void restoreLRFromStack(MachineBasicBlock &MBB, | ||||
MachineBasicBlock::iterator It) const; | MachineBasicBlock::iterator It, bool CFI, | ||||
bool Auth) const; | |||||
/// Emit CFI instructions into the MachineBasicBlock \p MBB at position \p It, | |||||
/// for the case when the LR is saved on the stack. | |||||
void emitCFIForLRSaveOnStack(MachineBasicBlock &MBB, | |||||
MachineBasicBlock::iterator It) const; | |||||
/// Emit CFI instructions into the MachineBasicBlock \p MBB at position \p It, | /// Emit CFI instructions into the MachineBasicBlock \p MBB at position \p It, | ||||
/// for the case when the LR is saved in the register \p Reg. | /// for the case when the LR is saved in the register \p Reg. | ||||
void emitCFIForLRSaveToReg(MachineBasicBlock &MBB, | void emitCFIForLRSaveToReg(MachineBasicBlock &MBB, | ||||
MachineBasicBlock::iterator It, | MachineBasicBlock::iterator It, | ||||
Register Reg) const; | Register Reg) const; | ||||
/// Emit CFI instructions into the MachineBasicBlock \p MBB at position \p It, | /// Emit CFI instructions into the MachineBasicBlock \p MBB at position \p It, | ||||
/// after the LR is was restored from the stack. | |||||
void emitCFIForLRRestoreFromStack(MachineBasicBlock &MBB, | |||||
MachineBasicBlock::iterator It) const; | |||||
/// Emit CFI instructions into the MachineBasicBlock \p MBB at position \p It, | |||||
/// after the LR is was restored from a register. | /// after the LR is was restored from a register. | ||||
void emitCFIForLRRestoreFromReg(MachineBasicBlock &MBB, | void emitCFIForLRRestoreFromReg(MachineBasicBlock &MBB, | ||||
MachineBasicBlock::iterator It) const; | MachineBasicBlock::iterator It) const; | ||||
/// \brief Sets the offsets on outlined instructions in \p MBB which use SP | /// \brief Sets the offsets on outlined instructions in \p MBB which use SP | ||||
/// so that they will be valid post-outlining. | /// so that they will be valid post-outlining. | ||||
/// | /// | ||||
/// \param MBB A \p MachineBasicBlock in an outlined function. | /// \param MBB A \p MachineBasicBlock in an outlined function. | ||||
void fixupPostOutline(MachineBasicBlock &MBB) const; | void fixupPostOutline(MachineBasicBlock &MBB) const; | ||||
▲ Show 20 Lines • Show All 531 Lines • Show Last 20 Lines |