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 418 of file AArch64MachineFunctionInfo.h.
Definition at line 419 of file AArch64MachineFunctionInfo.h.
using llvm::AArch64FunctionInfo::SetOfInstructions = SmallPtrSet<const MachineInstr *, 16> |
Definition at line 395 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 424 of file AArch64MachineFunctionInfo.h.
References llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by handleADRP().
|
inline |
Definition at line 466 of file AArch64MachineFunctionInfo.h.
Referenced by getCallOpcode().
|
inline |
Definition at line 464 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 237 of file AArch64MachineFunctionInfo.h.
Referenced by getArgumentStackToRestore().
|
inline |
Definition at line 234 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 445 of file AArch64MachineFunctionInfo.h.
Referenced by emitDefineCFAWithFP(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), getFPOffset(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 332 of file AArch64MachineFunctionInfo.h.
References assert().
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 289 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 429 of file AArch64MachineFunctionInfo.h.
Referenced by handleMustTailForwardedRegisters().
|
inline |
Definition at line 386 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 383 of file AArch64MachineFunctionInfo.h.
References Idx.
|
inline |
Definition at line 229 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 272 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseRedZone(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 421 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 397 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::getOutliningTypeImpl().
|
inline |
Definition at line 352 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 351 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 355 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 275 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 223 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 459 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 380 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 488 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 254 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), getSVEStackSize(), llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 342 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 476 of file AArch64MachineFunctionInfo.h.
Referenced by getCalleeSavedStackSize().
|
inline |
Definition at line 433 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::orderFrameObjects().
|
inline |
Definition at line 438 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::eliminateFrameIndex().
|
inline |
Definition at line 242 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 374 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 377 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 368 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 371 of file AArch64MachineFunctionInfo.h.
Referenced by getFixedObjectSize().
|
inline |
Definition at line 362 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 365 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 247 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::hasBasePointer(), and llvm::AArch64RegisterInfo::useFPForScavengingIndex().
|
inline |
Definition at line 262 of file AArch64MachineFunctionInfo.h.
Referenced by computeCalleeSaveRegisterPairs(), and llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 359 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::insertIndirectBranch(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), and llvm::AArch64InstrInfo::isFunctionSafeToSplit().
|
inline |
Definition at line 256 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue(), and llvm::AArch64FrameLowering::resolveFrameOffsetReference().
|
inline |
Definition at line 486 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::canUseAsPrologue().
|
inline |
Definition at line 481 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::enableStackSlotScavenging().
|
inline |
Definition at line 471 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots(), llvm::AArch64FrameLowering::canUseAsPrologue(), computeCalleeSaveRegisterPairs(), llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 354 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 462 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 268 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy().
|
inline |
Definition at line 259 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitEpilogue().
|
inline |
Definition at line 226 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 238 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 235 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 448 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by computeCalleeSaveRegisterPairs().
|
inline |
Definition at line 279 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 265 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 360 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 257 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 482 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::changeStreamingMode().
|
inline |
Definition at line 468 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 269 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64TargetLowering::initializeSplitCSR().
|
inline |
Definition at line 227 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 389 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 230 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 271 of file AArch64MachineFunctionInfo.h.
References Size.
Referenced by llvm::AArch64FrameLowering::emitEpilogue(), and llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 346 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 274 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64InstrInfo::buildOutlinedFrame().
|
inline |
Definition at line 224 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 460 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 381 of file AArch64MachineFunctionInfo.h.
References Reg.
|
inline |
Definition at line 260 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 249 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized().
|
inline |
Definition at line 339 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 473 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64FrameLowering::assignCalleeSavedSpillSlots().
|
inline |
Definition at line 436 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 441 of file AArch64MachineFunctionInfo.h.
References llvm::Offset.
Referenced by llvm::AArch64FrameLowering::emitPrologue().
|
inline |
Definition at line 243 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 375 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 378 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 369 of file AArch64MachineFunctionInfo.h.
|
inline |
Definition at line 372 of file AArch64MachineFunctionInfo.h.
References Size.
|
inline |
Definition at line 363 of file AArch64MachineFunctionInfo.h.
Referenced by llvm::AArch64CallLowering::lowerFormalArguments().
|
inline |
Definition at line 366 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 457 of file AArch64MachineFunctionInfo.h.
Referenced by outliningCandidatesSigningKeyConsensus().