LLVM 18.0.0git
|
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction. More...
#include "Target/AArch64/AArch64MachineFunctionInfo.h"
Classes | |
class | MILOHDirective |
Public Types | |
using | SetOfInstructions = SmallPtrSet< const MachineInstr *, 16 > |
using | MILOHArgs = MILOHDirective::LOHArgs |
using | MILOHContainer = SmallVector< MILOHDirective, 32 > |
Additional Inherited Members | |
![]() | |
template<typename FuncInfoTy , typename SubtargetTy = TargetSubtargetInfo> | |
static FuncInfoTy * | create (BumpPtrAllocator &Allocator, const Function &F, const SubtargetTy *STI) |
Factory function: default behavior is to call new using the supplied allocator. | |
template<typename Ty > | |
static Ty * | create (BumpPtrAllocator &Allocator, const Ty &MFI) |
AArch64FunctionInfo - This class is derived from MachineFunctionInfo and contains private AArch64-specific information for each MachineFunction.
Definition at line 39 of file AArch64MachineFunctionInfo.h.
Definition at line 399 of file AArch64MachineFunctionInfo.h.
Definition at line 400 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 376 of file AArch64MachineFunctionInfo.h.
AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
const AArch64Subtarget * | STI | ||
) |
Definition at line 85 of file AArch64MachineFunctionInfo.cpp.
References assert(), F, llvm::AArch64Subtarget::getFrameLowering(), GetSignReturnAddress(), llvm::TargetFrameLowering::getTransientStackAlign(), llvm::yaml::AArch64FunctionInfo::HasRedZone, llvm::AArch64Subtarget::isTargetWindows(), llvm::report_fatal_error(), ShouldSignWithBKey(), llvm::StringRef::size(), and llvm::Align::value().
Add a LOH directive of this Kind
and this Args
.
Definition at line 405 of file AArch64MachineFunctionInfo.h.
References llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by handleADRP().
|
inline |
Definition at line 441 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
overridevirtual |
Make a functionally equivalent copy of this MachineFunctionInfo in MF
.
This requires remapping MachineBasicBlock references from the original parent to values in the new function. Targets may assume that virtual register and frame index values are preserved in the new function.
Reimplemented from llvm::MachineFunctionInfo.
Definition at line 140 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 218 of file AArch64MachineFunctionInfo.h.
Referenced by getArgumentStackToRestore().
|
inline |
Definition at line 215 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 426 of file AArch64MachineFunctionInfo.h.
Referenced by emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 313 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 270 of file AArch64MachineFunctionInfo.h.
References llvm::alignTo(), assert(), llvm::TargetStackID::Default, llvm::MachineFrameInfo::getCalleeSavedInfo(), getCalleeSavedStackSize(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getObjectSize(), llvm::MachineFrameInfo::getStackID(), getSwiftAsyncContextFrameIdx(), Info, llvm::MachineFrameInfo::isCalleeSavedInfoValid(), llvm::Offset, and Size.
Referenced by computeCalleeSaveRegisterPairs(), emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 410 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 367 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 364 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 210 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 253 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 402 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 378 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::getOutliningTypeImpl().
|
inline |
Definition at line 333 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 332 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 336 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 256 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 361 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 463 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 235 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getSVEStackSize(), llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 323 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 451 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 414 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 419 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 223 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 355 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 358 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 349 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 352 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 343 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 346 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 228 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 243 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 340 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), and llvm::AArch64InstrInfo::isFunctionSafeToSplit().
|
inline |
Definition at line 237 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 461 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 456 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), and llvm::AArch64InstrInfo::isReallyTriviallyReMaterializable().
|
inline |
Definition at line 446 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 335 of file AArch64MachineFunctionInfo.h.
void AArch64FunctionInfo::initializeBaseYamlFields | ( | const yaml::AArch64FunctionInfo & | YamlMFI | ) |
Definition at line 34 of file AArch64MachineFunctionInfo.cpp.
References llvm::yaml::AArch64FunctionInfo::HasRedZone.
|
inline |
Definition at line 439 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 249 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 240 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 207 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegs().
bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 187 of file AArch64MachineFunctionInfo.cpp.
References llvm::Async, F, and llvm::MachineFunction::getFunction().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and emitShadowCallStackEpilogue().
bool AArch64FunctionInfo::needsDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 178 of file AArch64MachineFunctionInfo.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::needsFrameMoves(), and llvm::MCAsmInfo::usesWindowsCFI().
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), and llvm::AArch64FrameLowering::emitPrologue().
bool AArch64FunctionInfo::needsShadowCallStackPrologueEpilogue | ( | MachineFunction & | MF | ) | const |
Definition at line 166 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), isLRSpilled(), llvm::AArch64Subtarget::isXRegisterReserved(), and llvm::report_fatal_error().
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 219 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 216 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 429 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 260 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 246 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 341 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 238 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 457 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 443 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 250 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 208 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 370 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 211 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 252 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 327 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 255 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame().
|
inline |
Definition at line 362 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 241 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 230 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 320 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 448 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 417 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 422 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 224 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 356 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 359 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 350 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 353 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 344 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 347 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Definition at line 147 of file AArch64MachineFunctionInfo.cpp.
bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 161 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled().
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::AArch64FrameLowering::emitEpilogue(), and outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 438 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().