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 542 of file AArch64MachineFunctionInfo.h.
Definition at line 543 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 519 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 548 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 606 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 604 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 554 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 583 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 420 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 370 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 567 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 510 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 507 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 353 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 545 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 521 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 450 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 356 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 437 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 599 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 502 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 283 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 504 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 487 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 628 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 327 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getPPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 323 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getZPRStackSize(), and hasSVEStackSize().
|
inline |
Definition at line 443 of file AArch64MachineFunctionInfo.h.
References assert(), getPPRCalleeSavedStackSize(), getZPRCalleeSavedStackSize(), and hasSplitSVEObjects().
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 616 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 571 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 576 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 473 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 476 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 467 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 470 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 461 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 464 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 432 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 332 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizePPR(), getStackSizeZPR(), getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), isLikelyToHaveSVEStack(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 343 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 597 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 458 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 493 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 338 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 479 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), isStackHazardIncludedInCalleeSaveArea(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 626 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 621 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 496 of file AArch64MachineFunctionInfo.h.
References llvm::CallingConv::AArch64_SVE_VectorCall, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), hasSplitSVEObjects(), and isSVECC().
|
inline |
Definition at line 334 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 611 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 449 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 602 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 349 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 454 of file AArch64MachineFunctionInfo.h.
References hasSplitSVEObjects(), and hasStackHazardSlotIndex().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), and llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 341 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 586 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 360 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 346 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 265 of file AArch64MachineFunctionInfo.h.
References Ptr.
|
inline |
Definition at line 459 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 339 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves(), and initializeBaseYamlFields().
|
inline |
Definition at line 622 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and INITIALIZE_PASS().
|
inline |
Definition at line 608 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 350 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 300 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 513 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 352 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 355 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 600 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 494 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 505 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 488 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 483 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 342 of file AArch64MachineFunctionInfo.h.
Definition at line 317 of file AArch64MachineFunctionInfo.h.
Referenced by determineSVEStackSizes(), and initializeBaseYamlFields().
Definition at line 427 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 613 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 574 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 579 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 313 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 474 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 477 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 471 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 462 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 465 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 595 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().