LLVM 20.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 46 of file AArch64MachineFunctionInfo.h.
Definition at line 471 of file AArch64MachineFunctionInfo.h.
Definition at line 472 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 448 of file AArch64MachineFunctionInfo.h.
AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
const AArch64Subtarget * | STI | ||
) |
Definition at line 75 of file AArch64MachineFunctionInfo.cpp.
References assert(), F, llvm::AArch64Subtarget::getFrameLowering(), GetSignReturnAddress(), llvm::TargetFrameLowering::getTransientStackAlign(), llvm::yaml::AArch64FunctionInfo::HasRedZone, llvm::AArch64Subtarget::isTargetWindows(), llvm::report_fatal_error(), ShouldSignWithBKey(), llvm::StringRef::size(), and llvm::Align::value().
Add a LOH directive of this Kind
and this Args
.
Definition at line 477 of file AArch64MachineFunctionInfo.h.
References llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by handleADRP().
|
inline |
Definition at line 519 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 517 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode(), and llvm::AArch64CallLowering::lowerCall().
|
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 123 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 269 of file AArch64MachineFunctionInfo.h.
Referenced by getArgumentStackToRestore().
|
inline |
Definition at line 266 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 498 of file AArch64MachineFunctionInfo.h.
Referenced by emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 371 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 321 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(), emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), llvm::AArch64FrameLowering::getFrameIndexReferenceFromSP(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 439 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 304 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 474 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 450 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::getOutliningTypeImpl().
|
inline |
Definition at line 391 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 390 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 394 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 307 of file AArch64MachineFunctionInfo.h.
|
inline |
|
inline |
Definition at line 250 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 512 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 433 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 427 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 422 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 541 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 286 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getSVEStackSize(), llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 256 of file AArch64MachineFunctionInfo.h.
Referenced by emitVGSaveRestore(), and llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 381 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and produceCompactUnwindFrame().
|
inline |
Definition at line 529 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 486 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 491 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 274 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 262 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::EmitAllocateZABuffer(), and llvm::AArch64TargetLowering::EmitInitTPIDR2Object().
|
inline |
Definition at line 413 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 416 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 407 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 410 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 401 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 404 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 253 of file AArch64MachineFunctionInfo.h.
Referenced by emitVGSaveRestore().
|
inline |
Definition at line 279 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 294 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 398 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), and llvm::AArch64InstrInfo::isFunctionSafeToSplit().
|
inline |
Definition at line 288 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
|
inline |
Definition at line 539 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 534 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), needsAsyncDwarfUnwindInfo(), requiresGetVGCall(), and requiresSaveVG().
|
inline |
Definition at line 524 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 393 of file AArch64MachineFunctionInfo.h.
void AArch64FunctionInfo::initializeBaseYamlFields | ( | const yaml::AArch64FunctionInfo & | YamlMFI | ) |
Definition at line 34 of file AArch64MachineFunctionInfo.cpp.
References llvm::yaml::AArch64FunctionInfo::HasRedZone.
|
inline |
Definition at line 515 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 300 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 291 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 259 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegs(), and llvm::AArch64RegisterInfo::getDarwinCalleeSavedRegs().
bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 170 of file AArch64MachineFunctionInfo.cpp.
References llvm::Async, F, llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), and hasStreamingModeChanges().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and emitShadowCallStackEpilogue().
bool AArch64FunctionInfo::needsDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 161 of file AArch64MachineFunctionInfo.cpp.
References llvm::TargetMachine::getMCAsmInfo(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::needsFrameMoves(), and llvm::MCAsmInfo::usesWindowsCFI().
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), and llvm::AArch64FrameLowering::emitPrologue().
bool AArch64FunctionInfo::needsShadowCallStackPrologueEpilogue | ( | MachineFunction & | MF | ) | const |
Definition at line 149 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::Function::hasFnAttribute(), isLRSpilled(), llvm::AArch64Subtarget::isXRegisterReserved(), and llvm::report_fatal_error().
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 270 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 267 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 501 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 311 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 297 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 399 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 289 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 535 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode(), and INITIALIZE_PASS().
|
inline |
Definition at line 521 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 301 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 260 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 442 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 303 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 385 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 306 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame().
|
inline |
Definition at line 243 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 251 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 513 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 434 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 428 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 423 of file AArch64MachineFunctionInfo.h.
References assert().
|
inline |
Definition at line 292 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 281 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 257 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
|
inline |
Definition at line 378 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 526 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 489 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 494 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 275 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 414 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 417 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 408 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 411 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 402 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 405 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
|
inline |
Definition at line 254 of file AArch64MachineFunctionInfo.h.
References Idx.
Referenced by llvm::AArch64FrameLowering::spillCalleeSavedRegisters().
Definition at line 130 of file AArch64MachineFunctionInfo.cpp.
bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 144 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled().
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::AArch64FrameLowering::emitEpilogue(), and outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 510 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().