LLVM 22.0.0git
|
#include "Target/AArch64/AArch64PrologueEpilogue.h"
Public Member Functions | |
AArch64PrologueEpilogueCommon (MachineFunction &MF, MachineBasicBlock &MBB, const AArch64FrameLowering &AFL) |
Protected Member Functions | |
bool | requiresGetVGCall () const |
bool | isVGInstruction (MachineBasicBlock::iterator MBBI, const TargetLowering &TLI) const |
MachineBasicBlock::iterator | convertCalleeSaveRestoreToSPPrePostIncDec (MachineBasicBlock::iterator MBBI, const DebugLoc &DL, int CSStackSizeInc, bool EmitCFI, MachineInstr::MIFlag FrameFlag=MachineInstr::FrameSetup, int CFAOffset=0) const |
void | fixupCalleeSaveRestoreStackOffset (MachineInstr &MI, uint64_t LocalStackSize) const |
bool | shouldCombineCSRLocalStackBump (uint64_t StackBumpBytes) const |
Protected Attributes | |
MachineFunction & | MF |
MachineBasicBlock & | MBB |
const MachineFrameInfo & | MFI |
const AArch64Subtarget & | Subtarget |
const AArch64FrameLowering & | AFL |
const AArch64RegisterInfo & | RegInfo |
bool | HasFP = false |
bool | EmitCFI = false |
bool | IsFunclet = false |
bool | NeedsWinCFI = false |
bool | HomPrologEpilog = false |
bool | HasWinCFI = false |
const TargetInstrInfo * | TII = nullptr |
AArch64FunctionInfo * | AFI = nullptr |
Definition at line 30 of file AArch64PrologueEpilogue.h.
llvm::AArch64PrologueEpilogueCommon::AArch64PrologueEpilogueCommon | ( | MachineFunction & | MF, |
MachineBasicBlock & | MBB, | ||
const AArch64FrameLowering & | AFL ) |
Definition at line 89 of file AArch64PrologueEpilogue.cpp.
References AFI, AFL, HasFP, MBB, MF, MFI, NeedsWinCFI, RegInfo, Subtarget, and TII.
Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), and llvm::AArch64PrologueEmitter::AArch64PrologueEmitter().
|
protected |
Definition at line 103 of file AArch64PrologueEpilogue.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), AFL, assert(), llvm::CFIInstBuilder::buildDefCFAOffset(), llvm::BuildMI(), llvm::RegState::Define, DL, EmitCFI, llvm::emitFrameOffset(), llvm::MachineInstr::FrameDestroy, llvm::StackOffset::getFixed(), llvm::TypeSize::getFixed(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), HasWinCFI, isVGInstruction(), llvm_unreachable, MBB, MBBI, MF, NeedsWinCFI, llvm::MachineInstrBuilder::setMemRefs(), llvm::MachineInstrBuilder::setMIFlags(), Subtarget, llvm::Success, and TII.
Referenced by llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 247 of file AArch64PrologueEpilogue.cpp.
References assert(), llvm::fixupSEHOpcode(), llvm::MachineOperand::getImm(), HasWinCFI, llvm_unreachable, MBBI, MI, NeedsWinCFI, Opc, and llvm::MachineOperand::setImm().
Referenced by llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 36 of file AArch64PrologueEpilogue.cpp.
References llvm::matchLibcall(), MBBI, Opc, and requiresGetVGCall().
Referenced by convertCalleeSaveRestoreToSPPrePostIncDec(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 31 of file AArch64PrologueEpilogue.cpp.
Referenced by isVGInstruction().
|
protected |
Definition at line 76 of file AArch64PrologueEpilogue.h.
Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), llvm::AArch64PrologueEmitter::AArch64PrologueEmitter(), AArch64PrologueEpilogueCommon(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), requiresGetVGCall(), and shouldCombineCSRLocalStackBump().
|
protected |
Definition at line 61 of file AArch64PrologueEpilogue.h.
Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), llvm::AArch64PrologueEmitter::AArch64PrologueEmitter(), AArch64PrologueEpilogueCommon(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), and shouldCombineCSRLocalStackBump().
|
protected |
Definition at line 67 of file AArch64PrologueEpilogue.h.
Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), llvm::AArch64PrologueEmitter::AArch64PrologueEmitter(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 66 of file AArch64PrologueEpilogue.h.
Referenced by AArch64PrologueEpilogueCommon(), llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
mutableprotected |
Definition at line 73 of file AArch64PrologueEpilogue.h.
Referenced by convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), fixupCalleeSaveRestoreStackOffset(), and llvm::AArch64PrologueEmitter::~AArch64PrologueEmitter().
|
protected |
|
protected |
Definition at line 68 of file AArch64PrologueEpilogue.h.
Referenced by llvm::AArch64PrologueEmitter::AArch64PrologueEmitter(), llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 57 of file AArch64PrologueEpilogue.h.
Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), llvm::AArch64PrologueEmitter::AArch64PrologueEmitter(), AArch64PrologueEpilogueCommon(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 56 of file AArch64PrologueEpilogue.h.
Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), llvm::AArch64PrologueEmitter::AArch64PrologueEmitter(), AArch64PrologueEpilogueCommon(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), requiresGetVGCall(), shouldCombineCSRLocalStackBump(), and llvm::AArch64PrologueEmitter::~AArch64PrologueEmitter().
|
protected |
Definition at line 59 of file AArch64PrologueEpilogue.h.
Referenced by AArch64PrologueEpilogueCommon(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), and shouldCombineCSRLocalStackBump().
|
protected |
Definition at line 69 of file AArch64PrologueEpilogue.h.
Referenced by AArch64PrologueEpilogueCommon(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), llvm::AArch64PrologueEmitter::emitPrologue(), and fixupCalleeSaveRestoreStackOffset().
|
protected |
Definition at line 62 of file AArch64PrologueEpilogue.h.
Referenced by AArch64PrologueEpilogueCommon(), llvm::AArch64PrologueEmitter::emitPrologue(), and shouldCombineCSRLocalStackBump().
|
protected |
Definition at line 60 of file AArch64PrologueEpilogue.h.
Referenced by AArch64PrologueEpilogueCommon(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().
|
protected |
Definition at line 75 of file AArch64PrologueEpilogue.h.
Referenced by AArch64PrologueEpilogueCommon(), convertCalleeSaveRestoreToSPPrePostIncDec(), llvm::AArch64EpilogueEmitter::emitEpilogue(), and llvm::AArch64PrologueEmitter::emitPrologue().