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 515 of file AArch64MachineFunctionInfo.h.
Definition at line 516 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 492 of file AArch64MachineFunctionInfo.h.
AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
const AArch64Subtarget * | STI ) |
Definition at line 97 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 521 of file AArch64MachineFunctionInfo.h.
Referenced by handleADRP().
|
inline |
Definition at line 579 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 577 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
inline |
Definition at line 527 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 149 of file AArch64MachineFunctionInfo.cpp.
References AArch64FunctionInfo(), and llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 305 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 302 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 556 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 410 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 360 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::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 267 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 540 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 483 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 480 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 343 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 518 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 494 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 433 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 432 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 346 of file AArch64MachineFunctionInfo.h.
|
inline |
|
inline |
Definition at line 294 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 572 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 475 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::hasFPImpl().
|
inline |
Definition at line 281 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 477 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 469 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 464 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 601 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 322 of file AArch64MachineFunctionInfo.h.
References assert(), and hasCalculatedStackSizeSVE().
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), llvm::AArch64FrameLowering::getSVEStackSize(), llvm::AArch64FrameLowering::hasFPImpl(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 421 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 589 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 544 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 549 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 310 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 285 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateZABuffer(), and llvm::AArch64TargetLowering::EmitInitTPIDR2Object().
|
inline |
Definition at line 455 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 458 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 449 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 452 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 443 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 446 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 272 of file AArch64MachineFunctionInfo.h.
References assert(), and hasZT0SpillSlotIndex().
Referenced by getZT0FrameIndex().
|
inline |
Definition at line 315 of file AArch64MachineFunctionInfo.h.
Referenced by getStackSizeSVE(), llvm::AArch64FrameLowering::hasFPImpl(), isLikelyToHaveSVEStack(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 333 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 570 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64MCInstLower::lowerSymbolOperandELF().
|
inline |
Definition at line 440 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch().
|
inline |
Definition at line 327 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 461 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), llvm::AArch64FrameLowering::orderFrameObjects(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 599 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 594 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), needsAsyncDwarfUnwindInfo(), and llvm::AArch64FrameLowering::requiresSaveVG().
|
inline |
Definition at line 584 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), and computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 276 of file AArch64MachineFunctionInfo.h.
Referenced by getZT0FrameIndex(), and getZT0SpillSlotIndex().
|
inline |
Definition at line 435 of file AArch64MachineFunctionInfo.h.
void AArch64FunctionInfo::initializeBaseYamlFields | ( | const yaml::AArch64FunctionInfo & | YamlMFI | ) |
Definition at line 40 of file AArch64MachineFunctionInfo.cpp.
References llvm::yaml::AArch64FunctionInfo::HasRedZone, llvm::yaml::AArch64FunctionInfo::HasStackFrame, setHasStackFrame(), setStackSizeSVE(), and llvm::yaml::AArch64FunctionInfo::StackSizeSVE.
|
inline |
Definition at line 575 of file AArch64MachineFunctionInfo.h.
Referenced by isMergeableLdStUpdate().
|
inline |
Definition at line 283 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateSMESaveBuffer(), and llvm::AArch64TargetLowering::EmitGetSMESaveSize().
|
inline |
Definition at line 339 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 330 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 297 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getDarwinCalleeSavedRegs(), isLikelyToHaveSVEStack(), and produceCompactUnwindFrame().
bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 196 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 187 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 175 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 306 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 303 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 559 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 350 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 336 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 263 of file AArch64MachineFunctionInfo.h.
References Ptr.
|
inline |
Definition at line 441 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 328 of file AArch64MachineFunctionInfo.h.
Referenced by initializeBaseYamlFields().
|
inline |
Definition at line 595 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and INITIALIZE_PASS().
|
inline |
Definition at line 581 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 340 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 298 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 486 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 342 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 427 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 345 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 287 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 295 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 573 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 282 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 284 of file AArch64MachineFunctionInfo.h.
Referenced by emitSMEStateSaveRestore().
|
inline |
Definition at line 478 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 470 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 465 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 331 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 317 of file AArch64MachineFunctionInfo.h.
Referenced by initializeBaseYamlFields(), and llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 417 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 586 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 547 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 552 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 311 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 456 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 459 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 450 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 453 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 444 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 447 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 271 of file AArch64MachineFunctionInfo.h.
Referenced by getZT0FrameIndex().
Definition at line 156 of file AArch64MachineFunctionInfo.cpp.
bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 170 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled(), and shouldSignReturnAddress().
Referenced by outliningCandidatesSigningScopeConsensus(), and shouldSignReturnAddress().
|
inline |
Definition at line 568 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().