LLVM 22.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 47 of file AArch64MachineFunctionInfo.h.
Definition at line 546 of file AArch64MachineFunctionInfo.h.
Definition at line 547 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 523 of file AArch64MachineFunctionInfo.h.
AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
const AArch64Subtarget * | STI ) |
Definition at line 107 of file AArch64MachineFunctionInfo.cpp.
References assert(), llvm::dyn_cast_or_null(), llvm::mdconst::extract_or_null(), F, llvm::AArch64Subtarget::getFrameLowering(), GetSignReturnAddress(), llvm::TargetFrameLowering::getTransientStackAlign(), hasELFSignedGOTHelper(), llvm::AArch64Subtarget::isTargetWindows(), llvm::report_fatal_error(), ShouldSignWithBKey(), llvm::StringRef::size(), and llvm::Align::value().
Referenced by clone(), and needsAsyncDwarfUnwindInfo().
Add a LOH directive of this Kind
and this Args
.
Definition at line 552 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 610 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 608 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 558 of file AArch64MachineFunctionInfo.h.
References llvm::any_of(), llvm::SmallPtrSetImpl< PtrType >::contains(), D(), llvm::erase_if(), and MI.
Referenced by llvm::AArch64TargetMachine::clearLinkerOptimizationHints().
|
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 159 of file AArch64MachineFunctionInfo.cpp.
References AArch64FunctionInfo(), and llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 307 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 304 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 587 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 422 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 372 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(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 269 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 571 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 514 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 511 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 355 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 549 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 525 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 454 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 358 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 441 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), and getSVECalleeSavedStackSize().
|
inline |
|
inline |
Definition at line 296 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 603 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 506 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 283 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 508 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 491 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 486 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 632 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 329 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getPPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 325 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getZPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 447 of file AArch64MachineFunctionInfo.h.
References assert(), getPPRCalleeSavedStackSize(), getZPRCalleeSavedStackSize(), and hasSplitSVEObjects().
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 620 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 575 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 580 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 312 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 287 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateZABuffer(), llvm::AArch64TargetLowering::EmitInitTPIDR2Object(), and emitRestoreZALazySave().
|
inline |
Definition at line 477 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 480 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 471 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 474 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 465 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), and getSVECalleeSavedStackSize().
|
inline |
Definition at line 274 of file AArch64MachineFunctionInfo.h.
References assert(), and hasZT0SpillSlotIndex().
Referenced by getZT0FrameIndex().
|
inline |
Definition at line 334 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizePPR(), getStackSizeZPR(), getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), isLikelyToHaveSVEStack(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 345 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 601 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 462 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 497 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), determineSVEStackSizes(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), llvm::AArch64FrameLowering::getPPRStackSize(), getSVECalleeSavedStackSize(), hasSVE_AAPCS(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 340 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 483 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 630 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 625 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 500 of file AArch64MachineFunctionInfo.h.
References llvm::CallingConv::AArch64_SVE_VectorCall, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), hasSplitSVEObjects(), and isSVECC().
|
inline |
Definition at line 336 of file AArch64MachineFunctionInfo.h.
References getStackSizePPR(), and getStackSizeZPR().
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), llvm::AArch64FrameLowering::hasFPImpl(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 615 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 278 of file AArch64MachineFunctionInfo.h.
Referenced by getZT0FrameIndex(), and getZT0SpillSlotIndex().
|
inline |
Definition at line 453 of file AArch64MachineFunctionInfo.h.
void AArch64FunctionInfo::initializeBaseYamlFields | ( | const yaml::AArch64FunctionInfo & | YamlMFI | ) |
Definition at line 49 of file AArch64MachineFunctionInfo.cpp.
References llvm::yaml::AArch64FunctionInfo::HasRedZone, llvm::yaml::AArch64FunctionInfo::HasStackFrame, setHasStackFrame(), setStackSizeSVE(), llvm::yaml::AArch64FunctionInfo::StackSizePPR, and llvm::yaml::AArch64FunctionInfo::StackSizeZPR.
|
inline |
Definition at line 606 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 285 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateSMESaveBuffer(), and llvm::AArch64TargetLowering::EmitGetSMESaveSize().
|
inline |
Definition at line 351 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 458 of file AArch64MachineFunctionInfo.h.
References hasSplitSVEObjects(), and hasStackHazardSlotIndex().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 343 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 299 of file AArch64MachineFunctionInfo.h.
Referenced by hasSVE_AAPCS(), isLikelyToHaveSVEStack(), and produceCompactUnwindFrame().
bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 206 of file AArch64MachineFunctionInfo.cpp.
References AArch64FunctionInfo(), llvm::Async, F, llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), hasStreamingModeChanges(), and needsDwarfUnwindInfo().
bool AArch64FunctionInfo::needsDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 197 of file AArch64MachineFunctionInfo.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::needsFrameMoves(), and llvm::MCAsmInfo::usesWindowsCFI().
Referenced by llvm::AArch64FrameLowering::hasFPImpl(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
bool AArch64FunctionInfo::needsShadowCallStackPrologueEpilogue | ( | MachineFunction & | MF | ) | const |
Definition at line 185 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), isLRSpilled(), llvm::AArch64Subtarget::isXRegisterReserved(), and llvm::report_fatal_error().
|
inline |
Definition at line 308 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 305 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 590 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 362 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 348 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 265 of file AArch64MachineFunctionInfo.h.
References Ptr.
|
inline |
Definition at line 463 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 341 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and initializeBaseYamlFields().
|
inline |
Definition at line 626 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and INITIALIZE_PASS().
|
inline |
Definition at line 612 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 352 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 300 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 517 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 354 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 357 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 289 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 297 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 604 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 284 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 286 of file AArch64MachineFunctionInfo.h.
Referenced by emitSMEStateSaveRestore().
|
inline |
Definition at line 498 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 509 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 492 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 487 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 344 of file AArch64MachineFunctionInfo.h.
Definition at line 317 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by determineSVEStackSizes(), and initializeBaseYamlFields().
Definition at line 429 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 617 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 578 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 583 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 313 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 478 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 481 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 472 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 475 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 466 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 469 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 273 of file AArch64MachineFunctionInfo.h.
Referenced by getZT0FrameIndex().
Definition at line 166 of file AArch64MachineFunctionInfo.cpp.
bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 180 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled(), and shouldSignReturnAddress().
Referenced by outliningCandidatesSigningScopeConsensus(), and shouldSignReturnAddress().
|
inline |
Definition at line 599 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().