LLVM 20.0.0git
|
#include "llvm/CodeGen/CFIFixup.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/PostOrderIterator.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetInstrInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCDwarf.h"
#include "llvm/Target/TargetMachine.h"
#include <iterator>
Go to the source code of this file.
Classes | |
struct | InsertionPoint |
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 InsertionPoint | insertRememberRestorePair (const InsertionPoint &RememberInsertPt, const InsertionPoint &RestoreInsertPt) |
static InsertionPoint | cloneCfiPrologue (const InsertionPoint &PrologueEnd, const InsertionPoint &DstInsertPt) |
#define DEBUG_TYPE "cfi-fixup" |
Definition at line 88 of file CFIFixup.cpp.
|
static |
Definition at line 163 of file CFIFixup.cpp.
References llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), llvm::MachineFunction::CloneMachineInstr(), llvm::MachineBasicBlock::end(), End, 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 llvm::CFIFixup::runOnMachineFunction().
|
static |
Definition at line 101 of file CFIFixup.cpp.
References llvm::any_of(), llvm::MachineInstr::FrameDestroy, MBB, MI, and llvm::reverse().
Referenced by llvm::CFIFixup::runOnMachineFunction().
|
static |
Definition at line 109 of file CFIFixup.cpp.
References llvm::MachineBasicBlock::instrs(), isPrologueCFIInstruction(), MBB, MI, and llvm::reverse().
Referenced by llvm::CFIFixup::runOnMachineFunction().
INITIALIZE_PASS | ( | CFIFixup | , |
"cfi-fixup" | , | ||
"Insert CFI remember/restore state instructions" | , | ||
false | , | ||
false | |||
) |
Definition at line 92 of file CFIFixup.cpp.
|
static |
Definition at line 138 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 llvm::CFIFixup::runOnMachineFunction().
|
static |
Definition at line 96 of file CFIFixup.cpp.
References llvm::MachineInstr::FrameSetup, and MI.
Referenced by cloneCfiPrologue(), and findPrologueEnd().