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().