|
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 522 of file AArch64MachineFunctionInfo.h.
Definition at line 523 of file AArch64MachineFunctionInfo.h.
| using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 499 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::isTargetWindows(), 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 528 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 596 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::createPauthEpilogueInstr(), and getCallOpcode().
|
inline |
Definition at line 594 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), llvm::AArch64InstrInfo::insertIndirectBranch(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 534 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 283 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::createPauthEpilogueInstr(), and llvm::AArch64FrameLowering::getArgumentStackToRestore().
|
inline |
Definition at line 280 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 563 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 398 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 348 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 261 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 547 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 490 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 487 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 331 of file AArch64MachineFunctionInfo.h.
References uint64_t.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 525 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 501 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 430 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 334 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 417 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), getSVECalleeSavedStackSize(), and orderZPRCalleeSavesForPairs().
|
inline |
Definition at line 268 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::determineCalleeSaves(), orderZPRCalleeSavesForPairs(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 272 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 585 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 575 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 484 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 467 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 462 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 618 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 305 of file AArch64MachineFunctionInfo.h.
References assert(), hasCalculatedStackSizeSVE(), and uint64_t.
Referenced by llvm::AArch64FrameLowering::getPPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 301 of file AArch64MachineFunctionInfo.h.
References assert(), hasCalculatedStackSizeSVE(), and uint64_t.
Referenced by llvm::AArch64FrameLowering::getZPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 423 of file AArch64MachineFunctionInfo.h.
References assert(), getPPRCalleeSavedStackSize(), getZPRCalleeSavedStackSize(), and hasSplitSVEObjects().
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 606 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 551 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 556 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 288 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 453 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 456 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 447 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 450 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 441 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 444 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 412 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), getSVECalleeSavedStackSize(), and orderZPRCalleeSavesForPairs().
|
inline |
Definition at line 310 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizePPR(), getStackSizeZPR(), getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 321 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 583 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 438 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 473 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), determineSVEStackSizes(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), llvm::AArch64FrameLowering::getPPRStackSize(), getSVECalleeSavedStackSize(), hasSVE_AAPCS(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), orderZPRCalleeSavesForPairs(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 316 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 459 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 616 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 611 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), isInStreamingCallSiteRegion(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 476 of file AArch64MachineFunctionInfo.h.
References llvm::CallingConv::AArch64_SVE_VectorCall, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), hasSplitSVEObjects(), and isSVECC().
|
inline |
Definition at line 312 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 601 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 429 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 588 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 327 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 434 of file AArch64MachineFunctionInfo.h.
References hasSplitSVEObjects(), and hasStackHazardSlotIndex().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 319 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 275 of file AArch64MachineFunctionInfo.h.
Referenced by hasSVE_AAPCS(), and produceCompactUnwindFrame().
| bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 234 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::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::needsFrameMoves(), and llvm::MCAsmInfo::usesWindowsCFI().
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 284 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 281 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 566 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 338 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 324 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 257 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 439 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 317 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and initializeBaseYamlFields().
|
inline |
Definition at line 612 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and initializeBaseYamlFields().
|
inline |
Definition at line 598 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 328 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 276 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 493 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 330 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 333 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 265 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 273 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 586 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 474 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 485 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 463 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 320 of file AArch64MachineFunctionInfo.h.
Definition at line 293 of file AArch64MachineFunctionInfo.h.
References assert(), llvm::isAligned(), and uint64_t.
Referenced by determineSVEStackSizes(), and initializeBaseYamlFields().
Definition at line 405 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 603 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 554 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 559 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 289 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 454 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 457 of file AArch64MachineFunctionInfo.h.
References Size.
|
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.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 445 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 590 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 shouldSignReturnAddress().
|
inline |
Definition at line 581 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().