LLVM 20.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 | |
Static Public Member Functions inherited from llvm::MachineFunctionInfo | |
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 46 of file AArch64MachineFunctionInfo.h.
Definition at line 490 of file AArch64MachineFunctionInfo.h.
Definition at line 491 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 467 of file AArch64MachineFunctionInfo.h.
AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
const AArch64Subtarget * | STI | ||
) |
Definition at line 87 of file AArch64MachineFunctionInfo.cpp.
References assert(), F, llvm::AArch64Subtarget::getFrameLowering(), GetSignReturnAddress(), llvm::TargetFrameLowering::getTransientStackAlign(), hasELFSignedGOTHelper(), 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 496 of file AArch64MachineFunctionInfo.h.
References llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by handleADRP().
|
inline |
Definition at line 540 of file AArch64MachineFunctionInfo.h.
Referenced by emitPACCFI(), and getCallOpcode().
|
inline |
Definition at line 538 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 136 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 288 of file AArch64MachineFunctionInfo.h.
Referenced by getArgumentStackToRestore().
|
inline |
Definition at line 285 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 517 of file AArch64MachineFunctionInfo.h.
Referenced by emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 390 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 340 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(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 501 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 458 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 455 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 323 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 493 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 469 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::getOutliningTypeImpl().
|
inline |
Definition at line 410 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 409 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 413 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 326 of file AArch64MachineFunctionInfo.h.
|
inline |
|
inline |
Definition at line 269 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 533 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 263 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 452 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 446 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 441 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 562 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 305 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getSVEStackSize(), llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 275 of file AArch64MachineFunctionInfo.h.
Referenced by emitVGSaveRestore(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 400 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and produceCompactUnwindFrame().
|
inline |
Definition at line 550 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 505 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 510 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 293 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 281 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateZABuffer(), and llvm::AArch64TargetLowering::EmitInitTPIDR2Object().
|
inline |
Definition at line 432 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 435 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 426 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 429 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 420 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 423 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 272 of file AArch64MachineFunctionInfo.h.
Referenced by emitVGSaveRestore().
|
inline |
Definition at line 298 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 313 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 531 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 417 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), and llvm::AArch64InstrInfo::isFunctionSafeToSplit().
|
inline |
Definition at line 307 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
|
inline |
Definition at line 560 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 555 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), needsAsyncDwarfUnwindInfo(), requiresGetVGCall(), and requiresSaveVG().
|
inline |
Definition at line 545 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 412 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 536 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 266 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateSMESaveBuffer(), and llvm::AArch64TargetLowering::EmitGetSMESaveSize().
|
inline |
Definition at line 319 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 310 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 278 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegs(), and llvm::AArch64RegisterInfo::getDarwinCalleeSavedRegs().
bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 183 of file AArch64MachineFunctionInfo.cpp.
References llvm::Async, F, llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), and hasStreamingModeChanges().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and emitShadowCallStackEpilogue().
bool AArch64FunctionInfo::needsDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 174 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 162 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 289 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 286 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 520 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 330 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 316 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 418 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 308 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 556 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and INITIALIZE_PASS().
|
inline |
Definition at line 542 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 320 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 279 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 461 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 322 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 404 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 325 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame().
|
inline |
Definition at line 256 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 270 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 534 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 264 of file AArch64MachineFunctionInfo.h.
References Reg.
Definition at line 267 of file AArch64MachineFunctionInfo.h.
Referenced by emitSMEStateSaveRestore().
|
inline |
Definition at line 453 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 447 of file AArch64MachineFunctionInfo.h.
References assert(), and Index.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 442 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 311 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 300 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 276 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 397 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 547 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 508 of file AArch64MachineFunctionInfo.h.
References Index.
|
inline |
Definition at line 513 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 294 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 433 of file AArch64MachineFunctionInfo.h.
References Index.
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 427 of file AArch64MachineFunctionInfo.h.
References Index.
|
inline |
Definition at line 430 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 421 of file AArch64MachineFunctionInfo.h.
References Index.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 424 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 273 of file AArch64MachineFunctionInfo.h.
References Idx.
Referenced by llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
Definition at line 143 of file AArch64MachineFunctionInfo.cpp.
bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 157 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled().
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::AArch64FrameLowering::emitEpilogue(), and outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 529 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().