Thanks to visit codestin.com
Credit goes to llvm.org

LLVM 22.0.0git
CFIFixup.cpp File Reference

Go to the source code of this file.

Classes

struct  BlockFlags
struct  InsertionPoint

Macros

#define DEBUG_TYPE   "cfi-fixup"

Typedefs

using BlockFlagsVector = SmallVector<BlockFlags, 32>

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

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "cfi-fixup"

Definition at line 89 of file CFIFixup.cpp.

Typedef Documentation

◆ BlockFlagsVector

Definition at line 140 of file CFIFixup.cpp.

Function Documentation

◆ cloneCfiPrologue()

◆ computeBlockInfo()

◆ containsEpilogue()

bool containsEpilogue ( const MachineBasicBlock & MBB)
static

Definition at line 102 of file CFIFixup.cpp.

References llvm::any_of(), llvm::MachineInstr::FrameDestroy, MBB, MI, and llvm::reverse().

Referenced by computeBlockInfo().

◆ findPrologueEnd()

MachineBasicBlock * findPrologueEnd ( MachineFunction & MF,
MachineBasicBlock::iterator & PrologueEnd )
static

Definition at line 110 of file CFIFixup.cpp.

References isPrologueCFIInstruction(), MBB, MI, and llvm::reverse().

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

◆ fixupBlock()

◆ INITIALIZE_PASS()

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

Definition at line 93 of file CFIFixup.cpp.

References llvm::createCFIFixup().

◆ insertRememberRestorePair()

◆ isPrologueCFIInstruction()

bool isPrologueCFIInstruction ( const MachineInstr & MI)
static

Definition at line 97 of file CFIFixup.cpp.

References llvm::MachineInstr::FrameSetup, and MI.

Referenced by cloneCfiPrologue(), and findPrologueEnd().