|
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> |
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 56 of file AArch64MachineFunctionInfo.h.
Definition at line 550 of file AArch64MachineFunctionInfo.h.
Definition at line 551 of file AArch64MachineFunctionInfo.h.
| using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 527 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 556 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 620 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 618 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 562 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 311 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 308 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 591 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 426 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 376 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 273 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 575 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 518 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 515 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 359 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 553 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 529 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 458 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 362 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 445 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), and getSVECalleeSavedStackSize().
|
inline |
|
inline |
Definition at line 300 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 613 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 603 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 510 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 287 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 512 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 495 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 490 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 642 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 333 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getPPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 329 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getZPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 451 of file AArch64MachineFunctionInfo.h.
References assert(), getPPRCalleeSavedStackSize(), getZPRCalleeSavedStackSize(), and hasSplitSVEObjects().
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 630 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 579 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 584 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 316 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 291 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateZABuffer(), llvm::AArch64TargetLowering::EmitInitTPIDR2Object(), and emitRestoreZALazySave().
|
inline |
Definition at line 481 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 484 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 475 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 478 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 469 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 472 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 440 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), and getSVECalleeSavedStackSize().
|
inline |
Definition at line 278 of file AArch64MachineFunctionInfo.h.
References assert(), and hasZT0SpillSlotIndex().
Referenced by getZT0FrameIndex().
|
inline |
Definition at line 338 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizePPR(), getStackSizeZPR(), getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), isLikelyToHaveSVEStack(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 349 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 611 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 466 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 501 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 344 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 487 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 640 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 635 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 504 of file AArch64MachineFunctionInfo.h.
References llvm::CallingConv::AArch64_SVE_VectorCall, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), hasSplitSVEObjects(), and isSVECC().
|
inline |
Definition at line 340 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 625 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 282 of file AArch64MachineFunctionInfo.h.
Referenced by getZT0FrameIndex(), and getZT0SpillSlotIndex().
|
inline |
Definition at line 457 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 616 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 289 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateSMESaveBuffer(), and llvm::AArch64TargetLowering::EmitGetSMESaveSize().
|
inline |
Definition at line 355 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 462 of file AArch64MachineFunctionInfo.h.
References hasSplitSVEObjects(), and hasStackHazardSlotIndex().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 347 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 303 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 312 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 309 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 594 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 366 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 352 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 269 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 467 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 345 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and initializeBaseYamlFields().
|
inline |
Definition at line 636 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), INITIALIZE_PASS(), and initializeBaseYamlFields().
|
inline |
Definition at line 622 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 356 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 304 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 521 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 358 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 361 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 293 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 301 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 614 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 288 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 290 of file AArch64MachineFunctionInfo.h.
Referenced by emitSMEStateSaveRestore().
|
inline |
Definition at line 502 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 513 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 496 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 491 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 348 of file AArch64MachineFunctionInfo.h.
Definition at line 321 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by determineSVEStackSizes(), and initializeBaseYamlFields().
Definition at line 433 of file AArch64MachineFunctionInfo.h.
References assert(), and llvm::isAligned().
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 627 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 582 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 587 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 317 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 485 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 476 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 479 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 470 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 473 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 277 of file AArch64MachineFunctionInfo.h.
Referenced by getZT0FrameIndex().
| 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 609 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().