15#ifndef LLVM_LIB_TARGET_AARCH64_AARCH64PROLOGUEEPILOGUE_H
16#define LLVM_LIB_TARGET_AARCH64_AARCH64PROLOGUEEPILOGUE_H
41 MF.setHasWinCFI(HasWinCFI);
43 verifyPrologueClobbers();
54 void emitEmptyStackFramePrologue(int64_t NumBytes,
62 unsigned FixedObject)
const;
66 int64_t RealignmentPadding)
const;
71 void determineLocalsStackSize(
uint64_t StackSize,
uint64_t PrologueSaveSize);
86 void collectBlockLiveins();
87 void verifyPrologueClobbers()
const;
95 bool EmitAsyncCFI =
false;
97 bool IsFunclet =
false;
98 bool CombineSPBump =
false;
99 bool HomPrologEpilog =
false;
100 bool NeedsWinCFI =
false;
103 mutable bool HasWinCFI =
false;
105 const TargetInstrInfo *
TII =
nullptr;
106 AArch64FunctionInfo *AFI =
nullptr;
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
MachineBasicBlock MachineBasicBlock::iterator MBBI
const HexagonInstrInfo * TII
This file implements the LivePhysRegs utility for tracking liveness of physical registers.
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-spe...
void emitPrologue()
Emit the prologue.
AArch64PrologueEmitter(MachineFunction &MF, MachineBasicBlock &MBB, const AArch64FrameLowering &AFL)
~AArch64PrologueEmitter()
A set of physical registers with utility functions to track liveness when walking backward/forward th...
MachineInstrBundleIterator< MachineInstr > iterator
The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.
This is an optimization pass for GlobalISel generic memory operations.