LLVM: llvm::AArch64PrologueEpilogueCommon Class Reference (original) (raw)

#include "[Target/AArch64/AArch64PrologueEpilogue.h](AArch64PrologueEpilogue%5F8h%5Fsource.html)"

Public Types
enum class SVEStackLayout { Default, Split, CalleeSavesAboveFrameRecord }
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
SVEFrameSizes getSVEStackFrameSizes () const
SVEStackAllocations getSVEStackAllocations (SVEFrameSizes 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
SVEStackLayout SVELayout = SVEStackLayout::Default
bool HasWinCFI = false
const TargetInstrInfo * TII = nullptr
AArch64FunctionInfo * AFI = nullptr

Definition at line 41 of file AArch64PrologueEpilogue.h.

SVEStackLayout

Definition at line 87 of file AArch64PrologueEpilogue.cpp.

References AFI, AFL, HasFP, if(), MBB, MF, MFI, NeedsWinCFI, RegInfo, Subtarget, and TII.

Referenced by llvm::AArch64EpilogueEmitter::AArch64EpilogueEmitter(), and llvm::AArch64PrologueEmitter::AArch64PrologueEmitter().

convertCalleeSaveRestoreToSPPrePostIncDec()

Definition at line 121 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().

fixupCalleeSaveRestoreStackOffset()

void llvm::AArch64PrologueEpilogueCommon::fixupCalleeSaveRestoreStackOffset ( MachineInstr & MI, uint64_t LocalStackSize ) const protected

Definition at line 267 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().

getSVEStackAllocations()

getSVEStackFrameSizes()

SVEFrameSizes llvm::AArch64PrologueEpilogueCommon::getSVEStackFrameSizes ( ) const protected

isVGInstruction()

requiresGetVGCall()

bool llvm::AArch64PrologueEpilogueCommon::requiresGetVGCall ( ) const protected

shouldCombineCSRLocalStackBump()

bool llvm::AArch64PrologueEpilogueCommon::shouldCombineCSRLocalStackBump ( uint64_t StackBumpBytes) const protected

AFI

AFL

EmitCFI

bool llvm::AArch64PrologueEpilogueCommon::EmitCFI = false protected

HasFP

bool llvm::AArch64PrologueEpilogueCommon::HasFP = false protected

HasWinCFI

bool llvm::AArch64PrologueEpilogueCommon::HasWinCFI = false mutableprotected

HomPrologEpilog

bool llvm::AArch64PrologueEpilogueCommon::HomPrologEpilog = false protected

IsFunclet

bool llvm::AArch64PrologueEpilogueCommon::IsFunclet = false protected

MBB

MF

MFI

NeedsWinCFI

bool llvm::AArch64PrologueEpilogueCommon::NeedsWinCFI = false protected

RegInfo

Subtarget

SVELayout

SVEStackLayout llvm::AArch64PrologueEpilogueCommon::SVELayout = SVEStackLayout::Default protected

TII


The documentation for this class was generated from the following files: