LLVM: lib/CodeGen/CFIFixup.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "cfi-fixup"
Functions
INITIALIZE_PASS (CFIFixup, "cfi-fixup", "Insert CFI remember/restore state instructions", false, false) FunctionPass *llvm
static bool isPrologueCFIInstruction (const MachineInstr &MI)
static bool containsEpilogue (const MachineBasicBlock &MBB)
static MachineBasicBlock * findPrologueEnd (MachineFunction &MF, MachineBasicBlock::iterator &PrologueEnd)
static BlockFlagsVector computeBlockInfo (const MachineFunction &MF, const MachineBasicBlock *PrologueBlock)
static InsertionPoint insertRememberRestorePair (const InsertionPoint &RememberInsertPt, const InsertionPoint &RestoreInsertPt)
static InsertionPoint cloneCfiPrologue (const InsertionPoint &PrologueEnd, const InsertionPoint &DstInsertPt)
static bool fixupBlock (MachineBasicBlock &CurrBB, const BlockFlagsVector &BlockInfo, SmallDenseMap< MBBSectionID, InsertionPoint > &InsertionPts, const InsertionPoint &Prologue)

DEBUG_TYPE

#define DEBUG_TYPE "cfi-fixup"

BlockFlagsVector

cloneCfiPrologue()

Definition at line 220 of file CFIFixup.cpp.

References llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::insert(), isPrologueCFIInstruction(), InsertionPoint::Iterator, llvm::make_filter_range(), llvm::make_range(), llvm::map_range(), InsertionPoint::MBB, MBB, and MI.

Referenced by fixupBlock().

computeBlockInfo()

containsEpilogue()

findPrologueEnd()

fixupBlock()

Definition at line 245 of file CFIFixup.cpp.

References assert(), llvm::MachineBasicBlock::begin(), cloneCfiPrologue(), llvm::TargetFrameLowering::enableFullCFIFixup(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getNumber(), llvm::MachineBasicBlock::getParent(), llvm::MachineBasicBlock::getSectionID(), llvm::MachineFunction::getSubtarget(), BlockFlags::HasFrameOnExit, Info, insertRememberRestorePair(), llvm::MachineBasicBlock::isBeginSection(), InsertionPoint::MBB, llvm::MachineBasicBlock::predecessors(), and llvm::TargetFrameLowering::resetCFIToInitialState().

Referenced by llvm::CFIFixup::runOnMachineFunction().

INITIALIZE_PASS()

INITIALIZE_PASS ( CFIFixup ,
"cfi-fixup" ,
"Insert CFI remember/restore state instructions" ,
false ,
false )

insertRememberRestorePair()

Definition at line 195 of file CFIFixup.cpp.

References llvm::MachineInstrBuilder::addCFIIndex(), llvm::MachineFunction::addFrameInst(), llvm::BuildMI(), llvm::MCCFIInstruction::createRememberState(), llvm::MCCFIInstruction::createRestoreState(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), InsertionPoint::Iterator, InsertionPoint::MBB, and TII.

Referenced by fixupBlock().

isPrologueCFIInstruction()