|
LLVM 23.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 516 of file AArch64MachineFunctionInfo.h.
Definition at line 517 of file AArch64MachineFunctionInfo.h.
| using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 493 of file AArch64MachineFunctionInfo.h.
| AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
| const AArch64Subtarget * | STI ) |
Definition at line 111 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 522 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 586 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::createPauthEpilogueInstr(), and getCallOpcode().
|
inline |
Definition at line 584 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 528 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 163 of file AArch64MachineFunctionInfo.cpp.
References AArch64FunctionInfo(), and llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 277 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 274 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 557 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 392 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 342 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 Size.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 255 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 541 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 484 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 481 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 325 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 519 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 495 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 424 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 328 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 411 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), and getSVECalleeSavedStackSize().
|
inline |
|
inline |
Definition at line 266 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 579 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 569 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 476 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 478 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 461 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 456 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 608 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 299 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getPPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 295 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getZPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 417 of file AArch64MachineFunctionInfo.h.
References assert(), getPPRCalleeSavedStackSize(), getZPRCalleeSavedStackSize(), and hasSplitSVEObjects().
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), llvm::AArch64FrameLowering::hasSVECalleeSavesAboveFrameRecord(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 596 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 545 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 550 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 282 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 441 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 444 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 435 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 438 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 406 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), and getSVECalleeSavedStackSize().
|
inline |
Definition at line 304 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizePPR(), getStackSizeZPR(), getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), isLikelyToHaveSVEStack(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 315 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 577 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 432 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 467 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 310 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 453 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 606 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 601 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), isInStreamingCallSiteRegion(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 470 of file AArch64MachineFunctionInfo.h.
References llvm::CallingConv::AArch64_SVE_VectorCall, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), hasSplitSVEObjects(), and isSVECC().
|
inline |
Definition at line 306 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 591 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 423 of file AArch64MachineFunctionInfo.h.
| void AArch64FunctionInfo::initializeBaseYamlFields | ( | const yaml::AArch64FunctionInfo & | YamlMFI | ) |
Definition at line 54 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 582 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 321 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 428 of file AArch64MachineFunctionInfo.h.
References hasSplitSVEObjects(), and hasStackHazardSlotIndex().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 313 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 269 of file AArch64MachineFunctionInfo.h.
Referenced by hasSVE_AAPCS(), isLikelyToHaveSVEStack(), and produceCompactUnwindFrame().
| bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 215 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 206 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 194 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 278 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 275 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 560 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 332 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 318 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 251 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 433 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 311 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and initializeBaseYamlFields().
|
inline |
Definition at line 602 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), INITIALIZE_PASS(), and initializeBaseYamlFields().
|
inline |
Definition at line 588 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 322 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 270 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 487 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 324 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 327 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 259 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 267 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 580 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 479 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 462 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 457 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 314 of file AArch64MachineFunctionInfo.h.
Definition at line 287 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by determineSVEStackSizes(), and initializeBaseYamlFields().
Definition at line 399 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 593 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 548 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 553 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 283 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 448 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 451 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 442 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 445 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 439 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
| bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 189 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled(), and shouldSignReturnAddress().
|
static |
Definition at line 176 of file AArch64MachineFunctionInfo.cpp.
References llvm::All, llvm_unreachable, llvm::None, and llvm::NonLeaf.
Referenced by shouldSignReturnAddress().
|
inline |
Definition at line 575 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().