|
LLVM 24.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> |
Static Public Member Functions | |
| static bool | shouldSignReturnAddress (SignReturnAddress Condition, bool IsLRSpilled) |
| 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 51 of file AArch64MachineFunctionInfo.h.
Definition at line 528 of file AArch64MachineFunctionInfo.h.
Definition at line 529 of file AArch64MachineFunctionInfo.h.
| using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 505 of file AArch64MachineFunctionInfo.h.
| AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
| const AArch64Subtarget * | STI ) |
Definition at line 118 of file AArch64MachineFunctionInfo.cpp.
References assert(), llvm::StringSwitch< T, R >::Case(), llvm::StringSwitch< T, R >::DefaultUnreachable(), llvm::dyn_cast_or_null(), llvm::mdconst::extract_or_null(), F, llvm::AArch64Subtarget::getFrameLowering(), GetSignReturnAddress(), llvm::TargetFrameLowering::getTransientStackAlign(), llvm::Attribute::getValueAsString(), hasELFSignedGOTHelper(), llvm::AArch64Subtarget::isTargetWindowsOrUEFI(), llvm::Attribute::isValid(), 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 534 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 602 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::createPauthEpilogueInstr(), and getCallOpcode().
|
inline |
Definition at line 600 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), llvm::AArch64InstrInfo::insertIndirectBranch(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 540 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 182 of file AArch64MachineFunctionInfo.cpp.
References AArch64FunctionInfo(), and llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 289 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::createPauthEpilogueInstr(), and llvm::AArch64FrameLowering::getArgumentStackToRestore().
|
inline |
Definition at line 286 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 569 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 404 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 354 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(), llvm::MachineFrameInfo::isCalleeSavedInfoValid(), llvm::Offset, and llvm::Size.
Referenced by computeCalleeSaveRegisterGroups(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 267 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 553 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 496 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 493 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 337 of file AArch64MachineFunctionInfo.h.
References uint64_t.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 531 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 507 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 340 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 423 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterGroups(), getSVECalleeSavedStackSize(), and orderZPRCalleeSavesForGroups().
|
inline |
Definition at line 274 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterGroups(), llvm::AArch64FrameLowering::determineCalleeSaves(), orderZPRCalleeSavesForGroups(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 278 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 591 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 581 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 488 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 490 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 473 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 631 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 311 of file AArch64MachineFunctionInfo.h.
References assert(), hasCalculatedStackSizeSVE(), and uint64_t.
Referenced by llvm::AArch64FrameLowering::getPPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 307 of file AArch64MachineFunctionInfo.h.
References assert(), hasCalculatedStackSizeSVE(), and uint64_t.
Referenced by llvm::AArch64FrameLowering::getZPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 429 of file AArch64MachineFunctionInfo.h.
References assert(), getPPRCalleeSavedStackSize(), getZPRCalleeSavedStackSize(), and hasSplitSVEObjects().
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 619 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 557 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 562 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 294 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 459 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 462 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 453 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 456 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 447 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 450 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 418 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterGroups(), getSVECalleeSavedStackSize(), and orderZPRCalleeSavesForGroups().
|
inline |
Definition at line 316 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizePPR(), getStackSizeZPR(), getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 327 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterGroups(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 589 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 444 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 479 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterGroups(), determineSVEStackSizes(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), llvm::AArch64FrameLowering::getPPRStackSize(), getSVECalleeSavedStackSize(), hasSVE_AAPCS(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), orderZPRCalleeSavesForGroups(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 322 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 465 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterGroups(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 629 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 624 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), isInStreamingCallSiteRegion(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
References llvm::CallingConv::AArch64_SVE_VectorCall, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), hasSplitSVEObjects(), and isSVECC().
|
inline |
Definition at line 318 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 607 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterGroups(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 612 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 435 of file AArch64MachineFunctionInfo.h.
| void AArch64FunctionInfo::initializeBaseYamlFields | ( | const yaml::AArch64FunctionInfo & | YamlMFI | ) |
Definition at line 55 of file AArch64MachineFunctionInfo.cpp.
References llvm::yaml::AArch64FunctionInfo::HasRedZone, llvm::yaml::AArch64FunctionInfo::HasStackFrame, llvm::yaml::AArch64FunctionInfo::HasStreamingModeChanges, setHasStackFrame(), setHasStreamingModeChanges(), setStackSizeSVE(), llvm::yaml::AArch64FunctionInfo::StackSizePPR, and llvm::yaml::AArch64FunctionInfo::StackSizeZPR.
|
inline |
Definition at line 594 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 333 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 440 of file AArch64MachineFunctionInfo.h.
References hasSplitSVEObjects(), and hasStackHazardSlotIndex().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 325 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 281 of file AArch64MachineFunctionInfo.h.
Referenced by hasSVE_AAPCS(), and produceCompactUnwindFrame().
| bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 233 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 225 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::needsFrameMoves(), and llvm::MachineFunction::usesWindowsUnwindInfo().
Referenced by llvm::AArch64FrameLowering::hasFPImpl(), needsAsyncDwarfUnwindInfo(), llvm::AArch64FrameLowering::requiresSaveVG(), and shouldUseCompactUnwindFrameRecordForOutlinedFunction().
| bool AArch64FunctionInfo::needsShadowCallStackPrologueEpilogue | ( | MachineFunction & | MF | ) | const |
Definition at line 213 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 290 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 287 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 572 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterGroups().
|
inline |
Definition at line 344 of file AArch64MachineFunctionInfo.h.
References llvm::Size.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 330 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 263 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 445 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 323 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and initializeBaseYamlFields().
|
inline |
Definition at line 625 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and initializeBaseYamlFields().
|
inline |
Definition at line 604 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 609 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 334 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 282 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 499 of file AArch64MachineFunctionInfo.h.
References llvm::Size.
|
inline |
Definition at line 336 of file AArch64MachineFunctionInfo.h.
References llvm::Size, and uint64_t.
|
inline |
Definition at line 339 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 271 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 279 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 592 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 480 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 491 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 474 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 469 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 326 of file AArch64MachineFunctionInfo.h.
Definition at line 299 of file AArch64MachineFunctionInfo.h.
References assert(), llvm::isAligned(), and uint64_t.
Referenced by determineSVEStackSizes(), and initializeBaseYamlFields().
Definition at line 411 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 616 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 560 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 565 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 295 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 460 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 463 of file AArch64MachineFunctionInfo.h.
References llvm::Size.
|
inline |
Definition at line 454 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 457 of file AArch64MachineFunctionInfo.h.
References llvm::Size.
|
inline |
Definition at line 448 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 451 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 596 of file AArch64MachineFunctionInfo.h.
| bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 208 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled(), and shouldSignReturnAddress().
|
static |
Definition at line 195 of file AArch64MachineFunctionInfo.cpp.
References llvm::All, llvm_unreachable, llvm::None, and llvm::NonLeaf.
Referenced by llvm::AArch64FrameLowering::authenticatesReturnAddressEarly(), and shouldSignReturnAddress().
|
inline |
Definition at line 587 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().