LLVM 19.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 40 of file AArch64MachineFunctionInfo.h.
Definition at line 429 of file AArch64MachineFunctionInfo.h.
Definition at line 430 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 406 of file AArch64MachineFunctionInfo.h.
AArch64FunctionInfo::AArch64FunctionInfo | ( | const Function & | F, |
const AArch64Subtarget * | STI | ||
) |
Definition at line 85 of file AArch64MachineFunctionInfo.cpp.
References assert(), Bool, 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 435 of file AArch64MachineFunctionInfo.h.
References llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by handleADRP().
|
inline |
Definition at line 477 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 475 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 148 of file AArch64MachineFunctionInfo.cpp.
References llvm::MachineFunction::cloneInfo().
|
inline |
Definition at line 248 of file AArch64MachineFunctionInfo.h.
Referenced by getArgumentStackToRestore().
|
inline |
Definition at line 245 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 456 of file AArch64MachineFunctionInfo.h.
Referenced by emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 343 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 300 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(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 440 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 397 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 394 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 240 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 283 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 432 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 408 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::getOutliningTypeImpl().
|
inline |
Definition at line 363 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 362 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 366 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 286 of file AArch64MachineFunctionInfo.h.
|
inline |
|
inline |
Definition at line 234 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 470 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 391 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 499 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 265 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getSVEStackSize(), llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 353 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 487 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 444 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 449 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 253 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 385 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 388 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 379 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 382 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 373 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 376 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 258 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 273 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 370 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), and llvm::AArch64InstrInfo::isFunctionSafeToSplit().
|
inline |
Definition at line 267 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 497 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 492 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 365 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 473 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 279 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 270 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 237 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegs().
bool AArch64FunctionInfo::needsAsyncDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 195 of file AArch64MachineFunctionInfo.cpp.
References llvm::Async, F, and llvm::MachineFunction::getFunction().
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and emitShadowCallStackEpilogue().
bool AArch64FunctionInfo::needsDwarfUnwindInfo | ( | const MachineFunction & | MF | ) | const |
Definition at line 186 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 174 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 249 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 246 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 459 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 290 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 276 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 371 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 268 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 493 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 479 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 280 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 238 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 400 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 241 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 282 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 357 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 285 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame().
|
inline |
Definition at line 227 of file AArch64MachineFunctionInfo.h.
References Reg.
Referenced by llvm::AArch64FrameLowering::determineCalleeSaves().
|
inline |
Definition at line 235 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 471 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 392 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 271 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 260 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 350 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 484 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 447 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 452 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 254 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 386 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 389 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 380 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 383 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 374 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 377 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Definition at line 155 of file AArch64MachineFunctionInfo.cpp.
bool AArch64FunctionInfo::shouldSignReturnAddress | ( | const MachineFunction & | MF | ) | const |
Definition at line 169 of file AArch64MachineFunctionInfo.cpp.
References isLRSpilled().
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::AArch64FrameLowering::emitEpilogue(), and outliningCandidatesSigningScopeConsensus().
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().