LLVM  8.0.0svn
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
llvm::MachineFunction Class Reference

#include "llvm/CodeGen/MachineFunction.h"

Collaboration diagram for llvm::MachineFunction:
Collaboration graph
[legend]

Classes

class  Delegate
 
struct  VariableDbgInfo
 

Public Types

using VariableDbgInfoMapTy = SmallVector< VariableDbgInfo, 4 >
 
using iterator = BasicBlockListType::iterator
 
using const_iterator = BasicBlockListType::const_iterator
 
using const_reverse_iterator = BasicBlockListType::const_reverse_iterator
 
using reverse_iterator = BasicBlockListType::reverse_iterator
 
using OperandCapacity = ArrayRecycler< MachineOperand >::Capacity
 

Public Member Functions

 MachineFunction (const Function &F, const LLVMTargetMachine &Target, const TargetSubtargetInfo &STI, unsigned FunctionNum, MachineModuleInfo &MMI)
 
 MachineFunction (const MachineFunction &)=delete
 
MachineFunctionoperator= (const MachineFunction &)=delete
 
 ~MachineFunction ()
 
void reset ()
 Reset the instance as if it was just created. More...
 
void resetDelegate (Delegate *delegate)
 Reset the currently registered delegate - otherwise assert. More...
 
void setDelegate (Delegate *delegate)
 Set the delegate. More...
 
MachineModuleInfogetMMI () const
 
MCContextgetContext () const
 
PseudoSourceValueManagergetPSVManager () const
 
const DataLayoutgetDataLayout () const
 Return the DataLayout attached to the Module associated to this MF. More...
 
const FunctiongetFunction () const
 Return the LLVM function that this machine code represents. More...
 
StringRef getName () const
 getName - Return the name of the corresponding LLVM function. More...
 
unsigned getFunctionNumber () const
 getFunctionNumber - Return a unique ID for the current function. More...
 
const LLVMTargetMachinegetTarget () const
 getTarget - Return the target machine this machine code is compiled with More...
 
const TargetSubtargetInfogetSubtarget () const
 getSubtarget - Return the subtarget for which this machine code is being compiled. More...
 
void setSubtarget (const TargetSubtargetInfo *ST)
 
template<typename STC >
const STC & getSubtarget () const
 getSubtarget - This method returns a pointer to the specified type of TargetSubtargetInfo. More...
 
MachineRegisterInfogetRegInfo ()
 getRegInfo - Return information about the registers currently in use. More...
 
const MachineRegisterInfogetRegInfo () const
 
MachineFrameInfogetFrameInfo ()
 getFrameInfo - Return the frame info object for the current function. More...
 
const MachineFrameInfogetFrameInfo () const
 
const MachineJumpTableInfogetJumpTableInfo () const
 getJumpTableInfo - Return the jump table info object for the current function. More...
 
MachineJumpTableInfogetJumpTableInfo ()
 
MachineJumpTableInfogetOrCreateJumpTableInfo (unsigned JTEntryKind)
 getOrCreateJumpTableInfo - Get the JumpTableInfo for this function, if it does already exist, allocate one. More...
 
MachineConstantPoolgetConstantPool ()
 getConstantPool - Return the constant pool object for the current function. More...
 
const MachineConstantPoolgetConstantPool () const
 
const WasmEHFuncInfogetWasmEHFuncInfo () const
 getWasmEHFuncInfo - Return information about how the current function uses Wasm exception handling. More...
 
WasmEHFuncInfogetWasmEHFuncInfo ()
 
const WinEHFuncInfogetWinEHFuncInfo () const
 getWinEHFuncInfo - Return information about how the current function uses Windows exception handling. More...
 
WinEHFuncInfogetWinEHFuncInfo ()
 
unsigned getAlignment () const
 getAlignment - Return the alignment (log2, not bytes) of the function. More...
 
void setAlignment (unsigned A)
 setAlignment - Set the alignment (log2, not bytes) of the function. More...
 
void ensureAlignment (unsigned A)
 ensureAlignment - Make sure the function is at least 1 << A bytes aligned. More...
 
bool exposesReturnsTwice () const
 exposesReturnsTwice - Returns true if the function calls setjmp or any other similar functions with attribute "returns twice" without having the attribute itself. More...
 
void setExposesReturnsTwice (bool B)
 setCallsSetJmp - Set a flag that indicates if there's a call to a "returns twice" function. More...
 
bool hasInlineAsm () const
 Returns true if the function contains any inline assembly. More...
 
void setHasInlineAsm (bool B)
 Set a flag that indicates that the function contains inline assembly. More...
 
bool hasWinCFI () const
 
void setHasWinCFI (bool v)
 
const MachineFunctionPropertiesgetProperties () const
 Get the function properties. More...
 
MachineFunctionPropertiesgetProperties ()
 
template<typename Ty >
Ty * getInfo ()
 getInfo - Keep track of various per-function pieces of information for backends that would like to do so. More...
 
template<typename Ty >
const Ty * getInfo () const
 
MachineBasicBlockgetBlockNumbered (unsigned N) const
 getBlockNumbered - MachineBasicBlocks are automatically numbered when they are inserted into the machine function. More...
 
bool shouldSplitStack () const
 Should we be emitting segmented stack stuff for the function. More...
 
unsigned getNumBlockIDs () const
 getNumBlockIDs - Return the number of MBB ID's allocated. More...
 
void RenumberBlocks (MachineBasicBlock *MBBFrom=nullptr)
 RenumberBlocks - This discards all of the MachineBasicBlock numbers and recomputes them. More...
 
void print (raw_ostream &OS, const SlotIndexes *=nullptr) const
 print - Print out the MachineFunction in a format suitable for debugging to the specified stream. More...
 
void viewCFG () const
 viewCFG - This function is meant for use from the debugger. More...
 
void viewCFGOnly () const
 viewCFGOnly - This function is meant for use from the debugger. More...
 
void dump () const
 dump - Print the current MachineFunction to cerr, useful for debugger use. More...
 
bool verify (Pass *p=nullptr, const char *Banner=nullptr, bool AbortOnError=true) const
 Run the current MachineFunction through the machine code verifier, useful for debugger use. More...
 
unsigned addLiveIn (unsigned PReg, const TargetRegisterClass *RC)
 addLiveIn - Add the specified physical register as a live-in value and create a corresponding virtual register for it. More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
unsigned size () const
 
bool empty () const
 
const MachineBasicBlockfront () const
 
MachineBasicBlockfront ()
 
const MachineBasicBlockback () const
 
MachineBasicBlockback ()
 
void push_back (MachineBasicBlock *MBB)
 
void push_front (MachineBasicBlock *MBB)
 
void insert (iterator MBBI, MachineBasicBlock *MBB)
 
void splice (iterator InsertPt, iterator MBBI)
 
void splice (iterator InsertPt, MachineBasicBlock *MBB)
 
void splice (iterator InsertPt, iterator MBBI, iterator MBBE)
 
void remove (iterator MBBI)
 
void remove (MachineBasicBlock *MBBI)
 
void erase (iterator MBBI)
 
void erase (MachineBasicBlock *MBBI)
 
template<typename Comp >
void sort (Comp comp)
 
unsigned getInstructionCount () const
 Return the number of MachineInstrs in this MachineFunction. More...
 
unsigned addToMBBNumbering (MachineBasicBlock *MBB)
 Adds the MBB to the internal numbering. More...
 
void removeFromMBBNumbering (unsigned N)
 removeFromMBBNumbering - Remove the specific machine basic block from our tracker, this is only really to be used by the MachineBasicBlock implementation. More...
 
MachineInstrCreateMachineInstr (const MCInstrDesc &MCID, const DebugLoc &DL, bool NoImp=false)
 CreateMachineInstr - Allocate a new MachineInstr. More...
 
MachineInstrCloneMachineInstr (const MachineInstr *Orig)
 Create a new MachineInstr which is a copy of Orig, identical in all ways except the instruction has no parent, prev, or next. More...
 
MachineInstrCloneMachineInstrBundle (MachineBasicBlock &MBB, MachineBasicBlock::iterator InsertBefore, const MachineInstr &Orig)
 Clones instruction or the whole instruction bundle Orig and insert into MBB before InsertBefore. More...
 
void DeleteMachineInstr (MachineInstr *MI)
 DeleteMachineInstr - Delete the given MachineInstr. More...
 
MachineBasicBlockCreateMachineBasicBlock (const BasicBlock *bb=nullptr)
 CreateMachineBasicBlock - Allocate a new MachineBasicBlock. More...
 
void DeleteMachineBasicBlock (MachineBasicBlock *MBB)
 DeleteMachineBasicBlock - Delete the given MachineBasicBlock. More...
 
MachineMemOperandgetMachineMemOperand (MachinePointerInfo PtrInfo, MachineMemOperand::Flags f, uint64_t s, unsigned base_alignment, const AAMDNodes &AAInfo=AAMDNodes(), const MDNode *Ranges=nullptr, SyncScope::ID SSID=SyncScope::System, AtomicOrdering Ordering=AtomicOrdering::NotAtomic, AtomicOrdering FailureOrdering=AtomicOrdering::NotAtomic)
 getMachineMemOperand - Allocate a new MachineMemOperand. More...
 
MachineMemOperandgetMachineMemOperand (const MachineMemOperand *MMO, int64_t Offset, uint64_t Size)
 getMachineMemOperand - Allocate a new MachineMemOperand by copying an existing one, adjusting by an offset and using the given size. More...
 
MachineMemOperandgetMachineMemOperand (const MachineMemOperand *MMO, const AAMDNodes &AAInfo)
 Allocate a new MachineMemOperand by copying an existing one, replacing only AliasAnalysis information. More...
 
MachineOperandallocateOperandArray (OperandCapacity Cap)
 Allocate an array of MachineOperands. More...
 
void deallocateOperandArray (OperandCapacity Cap, MachineOperand *Array)
 Dellocate an array of MachineOperands and recycle the memory. More...
 
uint32_tallocateRegMask ()
 Allocate and initialize a register mask with NumRegister bits. More...
 
MachineInstr::ExtraInfo * createMIExtraInfo (ArrayRef< MachineMemOperand *> MMOs, MCSymbol *PreInstrSymbol=nullptr, MCSymbol *PostInstrSymbol=nullptr)
 Allocate and construct an extra info structure for a MachineInstr. More...
 
const charcreateExternalSymbolName (StringRef Name)
 Allocate a string and populate it with the given external symbol name. More...
 
MCSymbolgetJTISymbol (unsigned JTI, MCContext &Ctx, bool isLinkerPrivate=false) const
 getJTISymbol - Return the MCSymbol for the specified non-empty jump table. More...
 
MCSymbolgetPICBaseSymbol () const
 getPICBaseSymbol - Return a function-local symbol to represent the PIC base. More...
 
const std::vector< MCCFIInstruction > & getFrameInstructions () const
 Returns a reference to a list of cfi instructions in the function's prologue. More...
 
LLVM_NODISCARD unsigned addFrameInst (const MCCFIInstruction &Inst)
 
void setVariableDbgInfo (const DILocalVariable *Var, const DIExpression *Expr, int Slot, const DILocation *Loc)
 Collect information used to emit debugging information of a variable. More...
 
VariableDbgInfoMapTygetVariableDbgInfo ()
 
const VariableDbgInfoMapTygetVariableDbgInfo () const
 

Static Public Member Functions

static BasicBlockListType MachineFunction::* getSublistAccess (MachineBasicBlock *)
 Support for MachineBasicBlock::getNextNode(). More...
 

Public Attributes

VariableDbgInfoMapTy VariableDbgInfos
 

Friends

struct ilist_traits< MachineInstr >
 

Exception Handling

bool callsEHReturn () const
 
void setCallsEHReturn (bool b)
 
bool callsUnwindInit () const
 
void setCallsUnwindInit (bool b)
 
bool hasEHScopes () const
 
void setHasEHScopes (bool V)
 
bool hasEHFunclets () const
 
void setHasEHFunclets (bool V)
 
LandingPadInfogetOrCreateLandingPadInfo (MachineBasicBlock *LandingPad)
 Find or create an LandingPadInfo for the specified MachineBasicBlock. More...
 
void tidyLandingPads (DenseMap< MCSymbol *, uintptr_t > *LPMap=nullptr, bool TidyIfNoBeginLabels=true)
 Remap landing pad labels and remove any deleted landing pads. More...
 
const std::vector< LandingPadInfo > & getLandingPads () const
 Return a reference to the landing pad info for the current function. More...
 
void addInvoke (MachineBasicBlock *LandingPad, MCSymbol *BeginLabel, MCSymbol *EndLabel)
 Provide the begin and end labels of an invoke style call and associate it with a try landing pad block. More...
 
MCSymboladdLandingPad (MachineBasicBlock *LandingPad)
 Add a new panding pad, and extract the exception handling information from the landingpad instruction. More...
 
void addCatchTypeInfo (MachineBasicBlock *LandingPad, ArrayRef< const GlobalValue *> TyInfo)
 Provide the catch typeinfo for a landing pad. More...
 
void addFilterTypeInfo (MachineBasicBlock *LandingPad, ArrayRef< const GlobalValue *> TyInfo)
 Provide the filter typeinfo for a landing pad. More...
 
void addCleanup (MachineBasicBlock *LandingPad)
 Add a cleanup action for a landing pad. More...
 
void addSEHCatchHandler (MachineBasicBlock *LandingPad, const Function *Filter, const BlockAddress *RecoverBA)
 
void addSEHCleanupHandler (MachineBasicBlock *LandingPad, const Function *Cleanup)
 
unsigned getTypeIDFor (const GlobalValue *TI)
 Return the type id for the specified typeinfo. This is function wide. More...
 
int getFilterIDFor (std::vector< unsigned > &TyIds)
 Return the id of the filter encoded by TyIds. This is function wide. More...
 
void setCallSiteLandingPad (MCSymbol *Sym, ArrayRef< unsigned > Sites)
 Map the landing pad's EH symbol to the call site indexes. More...
 
void setWasmLandingPadIndex (const MachineBasicBlock *LPad, unsigned Index)
 Map the landing pad to its index. Used for Wasm exception handling. More...
 
bool hasWasmLandingPadIndex (const MachineBasicBlock *LPad) const
 Returns true if the landing pad has an associate index in wasm EH. More...
 
unsigned getWasmLandingPadIndex (const MachineBasicBlock *LPad) const
 Get the index in wasm EH for a given landing pad. More...
 
SmallVectorImpl< unsigned > & getCallSiteLandingPad (MCSymbol *Sym)
 Get the call site indexes for a landing pad EH symbol. More...
 
bool hasCallSiteLandingPad (MCSymbol *Sym)
 Return true if the landing pad Eh symbol has an associated call site. More...
 
void setCallSiteBeginLabel (MCSymbol *BeginLabel, unsigned Site)
 Map the begin label for a call site. More...
 
unsigned getCallSiteBeginLabel (MCSymbol *BeginLabel) const
 Get the call site number for a begin label. More...
 
bool hasCallSiteBeginLabel (MCSymbol *BeginLabel) const
 Return true if the begin label has a call site number associated with it. More...
 
void addCodeViewAnnotation (MCSymbol *Label, MDNode *MD)
 Record annotations associated with a particular label. More...
 
ArrayRef< std::pair< MCSymbol *, MDNode * > > getCodeViewAnnotations () const
 
const std::vector< const GlobalValue * > & getTypeInfos () const
 Return a reference to the C++ typeinfo for the current function. More...
 
const std::vector< unsigned > & getFilterIds () const
 Return a reference to the typeids encoding filters used in the current function. More...
 

Detailed Description

Definition at line 226 of file MachineFunction.h.

Member Typedef Documentation

◆ const_iterator

Definition at line 601 of file MachineFunction.h.

◆ const_reverse_iterator

Definition at line 602 of file MachineFunction.h.

◆ iterator

Definition at line 600 of file MachineFunction.h.

◆ OperandCapacity

Definition at line 742 of file MachineFunction.h.

◆ reverse_iterator

Definition at line 603 of file MachineFunction.h.

◆ VariableDbgInfoMapTy

Definition at line 388 of file MachineFunction.h.

Constructor & Destructor Documentation

◆ MachineFunction() [1/2]

MachineFunction::MachineFunction ( const Function F,
const LLVMTargetMachine Target,
const TargetSubtargetInfo STI,
unsigned  FunctionNum,
MachineModuleInfo MMI 
)

◆ MachineFunction() [2/2]

llvm::MachineFunction::MachineFunction ( const MachineFunction )
delete

◆ ~MachineFunction()

MachineFunction::~MachineFunction ( )

Member Function Documentation

◆ addCatchTypeInfo()

void MachineFunction::addCatchTypeInfo ( MachineBasicBlock LandingPad,
ArrayRef< const GlobalValue *>  TyInfo 
)

Provide the catch typeinfo for a landing pad.

Definition at line 678 of file MachineFunction.cpp.

References getOrCreateLandingPadInfo(), getTypeIDFor(), N, llvm::ArrayRef< T >::size(), and llvm::LandingPadInfo::TypeIds.

Referenced by addLandingPad().

◆ addCleanup()

void MachineFunction::addCleanup ( MachineBasicBlock LandingPad)

Add a cleanup action for a landing pad.

Definition at line 740 of file MachineFunction.cpp.

References getOrCreateLandingPadInfo(), and llvm::LandingPadInfo::TypeIds.

Referenced by addLandingPad().

◆ addCodeViewAnnotation()

void llvm::MachineFunction::addCodeViewAnnotation ( MCSymbol Label,
MDNode MD 
)
inline

Record annotations associated with a particular label.

Definition at line 906 of file MachineFunction.h.

Referenced by getUnderlyingArgReg().

◆ addFilterTypeInfo()

void MachineFunction::addFilterTypeInfo ( MachineBasicBlock LandingPad,
ArrayRef< const GlobalValue *>  TyInfo 
)

Provide the filter typeinfo for a landing pad.

Definition at line 685 of file MachineFunction.cpp.

References E, getFilterIDFor(), getOrCreateLandingPadInfo(), getTypeIDFor(), I, llvm::ArrayRef< T >::size(), and llvm::LandingPadInfo::TypeIds.

Referenced by addLandingPad().

◆ addFrameInst()

LLVM_NODISCARD unsigned llvm::MachineFunction::addFrameInst ( const MCCFIInstruction Inst)
inline

◆ addInvoke()

void MachineFunction::addInvoke ( MachineBasicBlock LandingPad,
MCSymbol BeginLabel,
MCSymbol EndLabel 
)

Provide the begin and end labels of an invoke style call and associate it with a try landing pad block.

Definition at line 624 of file MachineFunction.cpp.

References llvm::LandingPadInfo::BeginLabels, llvm::LandingPadInfo::EndLabels, and getOrCreateLandingPadInfo().

Referenced by llvm::SelectionDAGBuilder::lowerInvokable().

◆ addLandingPad()

MCSymbol * MachineFunction::addLandingPad ( MachineBasicBlock LandingPad)

◆ addLiveIn()

unsigned MachineFunction::addLiveIn ( unsigned  PReg,
const TargetRegisterClass RC 
)

◆ addSEHCatchHandler()

void MachineFunction::addSEHCatchHandler ( MachineBasicBlock LandingPad,
const Function Filter,
const BlockAddress RecoverBA 
)

◆ addSEHCleanupHandler()

void MachineFunction::addSEHCleanupHandler ( MachineBasicBlock LandingPad,
const Function Cleanup 
)

◆ addToMBBNumbering()

unsigned llvm::MachineFunction::addToMBBNumbering ( MachineBasicBlock MBB)
inline

Adds the MBB to the internal numbering.

Returns the unique number assigned to the MBB.

Definition at line 673 of file MachineFunction.h.

Referenced by llvm::printMBBReference().

◆ allocateOperandArray()

MachineOperand* llvm::MachineFunction::allocateOperandArray ( OperandCapacity  Cap)
inline

Allocate an array of MachineOperands.

This is only intended for use by internal MachineInstr functions.

Definition at line 746 of file MachineFunction.h.

References llvm::ArrayRecycler< T, Align >::allocate().

Referenced by llvm::MachineInstr::addImplicitDefUseOperands(), and llvm::MachineInstr::addOperand().

◆ allocateRegMask()

uint32_t * MachineFunction::allocateRegMask ( )

◆ back() [1/2]

const MachineBasicBlock& llvm::MachineFunction::back ( ) const
inline

◆ back() [2/2]

MachineBasicBlock& llvm::MachineFunction::back ( )
inline

Definition at line 633 of file MachineFunction.h.

◆ begin() [1/2]

iterator llvm::MachineFunction::begin ( )
inline

Definition at line 618 of file MachineFunction.h.

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::DwarfCFIException::beginFunction(), containsNewBackedge(), llvm::createR600ExpandSpecialInstrsPass(), llvm::createSIWholeQuadModePass(), createSwiftErrorEntriesInEntryBlock(), llvm::createX86FixupLEAs(), llvm::createX86IndirectBranchTrackingPass(), llvm::createX86RetpolineThunksPass(), llvm::createXCoreFrameToArgsOffsetEliminationPass(), doesNotGeneratecode(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::ScheduleDAGSDNodes::EmitSchedule(), llvm::finalizeBundles(), findStartOfTree(), llvm::HexagonInstrInfo::genAllInsnTimingClasses(), getBBFallenThrough(), getLayoutSuccessorProbThreshold(), getNewValueJumpOpcode(), getReassignedChan(), llvm::MachineLoop::getTopBlock(), getTryAncestor(), giveUpWithRemarks(), HandleVRSaveUpdate(), HasArgumentDef(), hasVulnerableLoad(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), insertCopy(), InsertLDR_STR(), isCopy(), isFunctionEntryBlock(), IsMovepDestinationRegPair(), isTerminalReg(), IsUnconditionalJump(), matchPair(), matchSwap(), mergeOperations(), llvm::GraphTraits< MachineBlockFrequencyInfo * >::nodes_begin(), llvm::GraphTraits< MachineFunction * >::nodes_begin(), llvm::GraphTraits< const MachineFunction * >::nodes_begin(), false::IntervalSorter::operator()(), printExtendedName(), ProfitableToMerge(), readsVCCZ(), removeExternalCFGEdges(), RemoveVRSaveCode(), RenumberBlocks(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::UnreachableBlockElimPass::run(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), salvageDebugInfoFromEmptyBlock(), splitBlock(), llvm::TailDuplicator::tailDuplicateBlocks(), llvm::LoopTraversal::traverse(), verify(), verifyCTRBranch(), verifyLeafProcRegUse(), VerifyPHIs(), and ~MachineFunction().

◆ begin() [2/2]

const_iterator llvm::MachineFunction::begin ( ) const
inline

Definition at line 619 of file MachineFunction.h.

◆ callsEHReturn()

bool llvm::MachineFunction::callsEHReturn ( ) const
inline

◆ callsUnwindInit()

bool llvm::MachineFunction::callsUnwindInit ( ) const
inline

◆ CloneMachineInstr()

MachineInstr * MachineFunction::CloneMachineInstr ( const MachineInstr Orig)

Create a new MachineInstr which is a copy of Orig, identical in all ways except the instruction has no parent, prev, or next.

Create a new MachineInstr which is a copy of the 'Orig' instruction, identical in all ways except the instruction has no parent, prev, or next.

Bundling flags are reset.

Note: Clones a single instruction, not whole instruction bundles. Does not perform target specific adjustments; consider using TargetInstrInfo::duplicate() instead.

Definition at line 329 of file MachineFunction.cpp.

Referenced by CloneMachineInstrBundle(), llvm::TargetInstrInfo::commuteInstructionImpl(), llvm::SystemZInstrInfo::commuteInstructionImpl(), llvm::X86InstrInfo::commuteInstructionImpl(), for(), llvm::RegBankSelect::getAnalysisUsage(), isIntersect(), MaySpeculate(), llvm::ARMBaseInstrInfo::reMaterialize(), llvm::X86InstrInfo::reMaterialize(), llvm::TargetInstrInfo::reMaterialize(), removePhis(), and llvm::SystemZInstrInfo::SystemZInstrInfo().

◆ CloneMachineInstrBundle()

MachineInstr & MachineFunction::CloneMachineInstrBundle ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  InsertBefore,
const MachineInstr Orig 
)

Clones instruction or the whole instruction bundle Orig and insert into MBB before InsertBefore.

Note: Does not perform target specific adjustments; consider using TargetInstrInfo::duplicate() intead.

Definition at line 334 of file MachineFunction.cpp.

References llvm::MachineInstr::bundleWithPred(), CloneMachineInstr(), llvm::ilist_node_impl< OptionsT >::getIterator(), I, and llvm::MachineBasicBlock::insert().

Referenced by llvm::TargetInstrInfo::duplicate().

◆ createExternalSymbolName()

const char * MachineFunction::createExternalSymbolName ( StringRef  Name)

◆ CreateMachineBasicBlock()

MachineBasicBlock * MachineFunction::CreateMachineBasicBlock ( const BasicBlock bb = nullptr)

CreateMachineBasicBlock - Allocate a new MachineBasicBlock.

Allocate a new MachineBasicBlock.

Use this instead of `new MachineBasicBlock'.

Definition at line 373 of file MachineFunction.cpp.

Referenced by addExclusiveRegPair(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::analyzeArguments(), ComputeCommonTailLength(), createPHIsForCMOVsInSinkBB(), llvm::createX86RetpolineThunksPass(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBlockAfter(), emitClzero(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostSt(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitXBegin(), llvm::SparcTargetLowering::expandSelectCC(), llvm::SelectionDAGBuilder::FindMergedConditions(), getRetpolineSymbol(), llvm::MipsTargetLowering::HandleByVal(), hasOneExitNode(), INITIALIZE_PASS(), llvm::X86FrameLowering::inlineStackProbe(), isFunctionEntryBlock(), isImmValidForOpcode(), isIntersect(), loadM0FromVGPR(), loadSRsrcFromVGPR(), LowerFPToInt(), makeImplicit(), packCmovGroup(), removeExternalCFGEdges(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::FunctionLoweringInfo::set(), split(), splitBlock(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::SITargetLowering::splitKillBlock(), splitMBB(), toString(), trySequenceOfOnes(), and tryToElideArgumentCopy().

◆ CreateMachineInstr()

MachineInstr * MachineFunction::CreateMachineInstr ( const MCInstrDesc MCID,
const DebugLoc DL,
bool  NoImp = false 
)

◆ createMIExtraInfo()

MachineInstr::ExtraInfo * MachineFunction::createMIExtraInfo ( ArrayRef< MachineMemOperand *>  MMOs,
MCSymbol PreInstrSymbol = nullptr,
MCSymbol PostInstrSymbol = nullptr 
)

Allocate and construct an extra info structure for a MachineInstr.

This is allocated on the function's allocator and so lives the life of the function.

Definition at line 429 of file MachineFunction.cpp.

Referenced by llvm::MachineInstr::dropMemRefs(), llvm::MachineInstr::setMemRefs(), llvm::MachineInstr::setPostInstrSymbol(), and llvm::MachineInstr::setPreInstrSymbol().

◆ deallocateOperandArray()

void llvm::MachineFunction::deallocateOperandArray ( OperandCapacity  Cap,
MachineOperand Array 
)
inline

Dellocate an array of MachineOperands and recycle the memory.

This is only intended for use by internal MachineInstr functions. Cap must be the same capacity that was used to allocate the array.

Definition at line 753 of file MachineFunction.h.

References llvm::ArrayRecycler< T, Align >::deallocate(), and Name.

Referenced by llvm::MachineInstr::addOperand(), and DeleteMachineInstr().

◆ DeleteMachineBasicBlock()

void MachineFunction::DeleteMachineBasicBlock ( MachineBasicBlock MBB)

DeleteMachineBasicBlock - Delete the given MachineBasicBlock.

Delete the given MachineBasicBlock.

Definition at line 380 of file MachineFunction.cpp.

References assert(), and llvm::MachineBasicBlock::getParent().

Referenced by llvm::MachineFunctionProperties::print().

◆ DeleteMachineInstr()

void MachineFunction::DeleteMachineInstr ( MachineInstr MI)

◆ dump()

LLVM_DUMP_METHOD void MachineFunction::dump ( ) const

dump - Print the current MachineFunction to cerr, useful for debugger use.

Definition at line 452 of file MachineFunction.cpp.

References llvm::dbgs(), and print().

Referenced by llvm::A57ChainingConstraint::apply(), checkRegOnlyPHIInputs(), and hasVulnerableLoad().

◆ empty()

bool llvm::MachineFunction::empty ( ) const
inline

◆ end() [1/2]

iterator llvm::MachineFunction::end ( )
inline

Definition at line 620 of file MachineFunction.h.

Referenced by llvm::analyzeArguments(), BBHasFallthrough(), canFallThroughTo(), llvm::createR600ExpandSpecialInstrsPass(), llvm::createX86FixupLEAs(), llvm::createX86RetpolineThunksPass(), llvm::createXCoreFrameToArgsOffsetEliminationPass(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::finalizeBundles(), findNextInsertLocation(), FixTail(), getLayoutSuccessorProbThreshold(), getNewValueJumpOpcode(), getNextBlock(), getReassignedChan(), llvm::guessSuccessors(), HandleVRSaveUpdate(), hasOneExitNode(), hasVulnerableLoad(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), insertCopy(), InsertLDR_STR(), llvm::SlotIndexes::insertMBBInMaps(), isCopy(), IsMovepDestinationRegPair(), isTerminalReg(), IsUnconditionalJump(), jumpTableFollowsTB(), matchPair(), matchSwap(), mergeOperations(), llvm::GraphTraits< MachineBlockFrequencyInfo * >::nodes_end(), llvm::GraphTraits< MachineFunction * >::nodes_end(), llvm::GraphTraits< const MachineFunction * >::nodes_end(), false::IntervalSorter::operator()(), printExtendedName(), readsVCCZ(), RemoveVRSaveCode(), RenumberBlocks(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::UnreachableBlockElimPass::run(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), salvageDebugInfoFromEmptyBlock(), splitBlock(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::TailDuplicator::tailDuplicateBlocks(), toString(), verify(), verifyCTRBranch(), verifyLeafProcRegUse(), VerifyPHIs(), and ~MachineFunction().

◆ end() [2/2]

const_iterator llvm::MachineFunction::end ( ) const
inline

Definition at line 621 of file MachineFunction.h.

◆ ensureAlignment()

void llvm::MachineFunction::ensureAlignment ( unsigned  A)
inline

ensureAlignment - Make sure the function is at least 1 << A bytes aligned.

Definition at line 498 of file MachineFunction.h.

References A.

Referenced by doesNotGeneratecode(), and llvm::R600AsmPrinter::runOnMachineFunction().

◆ erase() [1/2]

void llvm::MachineFunction::erase ( iterator  MBBI)
inline

◆ erase() [2/2]

void llvm::MachineFunction::erase ( MachineBasicBlock MBBI)
inline

◆ exposesReturnsTwice()

bool llvm::MachineFunction::exposesReturnsTwice ( ) const
inline

exposesReturnsTwice - Returns true if the function calls setjmp or any other similar functions with attribute "returns twice" without having the attribute itself.

Definition at line 505 of file MachineFunction.h.

Referenced by llvm::CodeViewDebug::beginFunctionImpl(), computeWeight(), isEFLAGSLive(), false::IntervalSorter::operator()(), and llvm::MIRPrinter::print().

◆ front() [1/2]

const MachineBasicBlock& llvm::MachineFunction::front ( ) const
inline

Definition at line 630 of file MachineFunction.h.

Referenced by addEpilogOnlyR10(), llvm::WinException::beginFunction(), llvm::SIInstrInfo::calculateLDSSpillAddress(), createBBSelectReg(), llvm::createSIWholeQuadModePass(), llvm::createX86PadShortFunctions(), llvm::createX86RetpolineThunksPass(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::HexagonDAGToDAGISel::EmitFunctionEntryCode(), emitGPDisp(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), enableAllocFrameElim(), findScratchNonCalleeSaveRegister(), llvm::getEHScopeMembership(), llvm::GraphTraits< MachineBlockFrequencyInfo * >::getEntryNode(), llvm::GraphTraits< MachineFunction * >::getEntryNode(), llvm::GraphTraits< const MachineFunction * >::getEntryNode(), getFPReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), getLayoutSuccessorProbThreshold(), GetMatchingEHPad(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), getTryAncestor(), giveUpWithRemarks(), INITIALIZE_PASS(), PrevCrossBBInst(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), readsVCCZ(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::rdf::CopyPropagation::run(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::SIRegisterInfo::spillSGPR(), updateLiveness(), and verify().

◆ front() [2/2]

MachineBasicBlock& llvm::MachineFunction::front ( )
inline

Definition at line 631 of file MachineFunction.h.

◆ getAlignment()

unsigned llvm::MachineFunction::getAlignment ( ) const
inline

getAlignment - Return the alignment (log2, not bytes) of the function.

Definition at line 492 of file MachineFunction.h.

Referenced by llvm::WinException::beginFunclet(), llvm::AsmPrinter::EmitDebugThreadLocal(), llvm::MipsAsmPrinter::EmitFunctionEntryLabel(), INITIALIZE_PASS(), and llvm::MIRPrinter::print().

◆ getBlockNumbered()

MachineBasicBlock* llvm::MachineFunction::getBlockNumbered ( unsigned  N) const
inline

getBlockNumbered - MachineBasicBlocks are automatically numbered when they are inserted into the machine function.

The block number for a machine basic block can be found by using the MBB::getNumber method, this method provides the inverse mapping.

Definition at line 553 of file MachineFunction.h.

References assert(), and N.

Referenced by llvm::LiveRangeCalc::calculateValues(), enableAllocFrameElim(), llvm::SplitAnalysis::getFirstSplitPoint(), llvm::SplitAnalysis::getLastSplitPoint(), llvm::LiveRangeCalc::isJointlyDominated(), and llvm::MachineTraceMetrics::Ensemble::verify().

◆ getCallSiteBeginLabel()

unsigned llvm::MachineFunction::getCallSiteBeginLabel ( MCSymbol BeginLabel) const
inline

◆ getCallSiteLandingPad()

SmallVectorImpl<unsigned>& llvm::MachineFunction::getCallSiteLandingPad ( MCSymbol Sym)
inline

Get the call site indexes for a landing pad EH symbol.

Definition at line 877 of file MachineFunction.h.

References assert().

Referenced by llvm::ARMTargetLowering::ReplaceNodeResults().

◆ getCodeViewAnnotations()

ArrayRef<std::pair<MCSymbol *, MDNode *> > llvm::MachineFunction::getCodeViewAnnotations ( ) const
inline

Definition at line 910 of file MachineFunction.h.

Referenced by llvm::CodeViewDebug::endFunctionImpl().

◆ getConstantPool() [1/2]

MachineConstantPool* llvm::MachineFunction::getConstantPool ( )
inline

◆ getConstantPool() [2/2]

const MachineConstantPool* llvm::MachineFunction::getConstantPool ( ) const
inline

Definition at line 477 of file MachineFunction.h.

References llvm::ISD::ConstantPool.

◆ getContext()

MCContext& llvm::MachineFunction::getContext ( ) const
inline

◆ getDataLayout()

const DataLayout & MachineFunction::getDataLayout ( ) const

Return the DataLayout attached to the Module associated to this MF.

Definition at line 257 of file MachineFunction.cpp.

References llvm::Module::getDataLayout(), getOrCreateJumpTableInfo(), and llvm::GlobalValue::getParent().

Referenced by llvm::X86TargetLowering::BuildFILD(), llvm::ScheduleDAGInstrs::buildSchedGraph(), CallingConvSupported(), canLowerToLDG(), canTurnIntoCOPY(), llvm::CC_ARM_AAPCS_Custom_Aggregate(), CC_RISCV(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), createPHIsForCMOVsInSinkBB(), llvm::FunctionLoweringInfo::CreateRegs(), createSwiftErrorEntriesInEntryBlock(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::MipsAsmPrinter::EmitInstruction(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::TargetLoweringBase::emitPatchPoint(), emitPostSt(), EnsureStackAlignment(), llvm::InstructionSelector::executeMatchTable(), llvm::AsmPrinter::GetCPISymbol(), llvm::SelectionDAG::getDataLayout(), getDwarfRegNum(), llvm::PPCFunctionInfo::getGlobalEPSymbol(), getJTISymbol(), llvm::PPCFunctionInfo::getLocalEPSymbol(), llvm::FunctionLoweringInfo::getOrCreateSwiftErrorVReg(), llvm::FunctionLoweringInfo::getOrCreateSwiftErrorVRegDefAt(), getPICBaseSymbol(), llvm::PPCFunctionInfo::getPICOffsetSymbol(), getRetpolineSymbol(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::AsmPrinter::GetSizeOfEncodedValue(), llvm::TargetInstrInfo::getStackSlotRange(), llvm::PPCFunctionInfo::getTOCOffsetSymbol(), getUnderlyingObjects(), llvm::MachinePointerInfo::getUnknownStack(), hasSingleUsesFromRoot(), llvm::PPCTargetLowering::isLegalAddressingMode(), isSupportedType(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::ARMCallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), lowerFCOPYSIGN64(), llvm::X86CallLowering::lowerFormalArguments(), llvm::ARMCallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_64(), LowerI64IntToFP_AVX512DQ(), llvm::BPFTargetLowering::LowerOperation(), llvm::RISCVTargetLowering::LowerOperation(), llvm::X86CallLowering::lowerReturn(), llvm::MipsCallLowering::lowerReturn(), MachineFunction(), llvm::X86TargetLowering::markLibCallAttributes(), Passv64i1ArgInRegs(), llvm::PPCTargetLowering::PerformDAGCombine(), PrepareCall(), llvm::AsmPrinter::PrintSpecial(), processDbgDeclares(), propagateSwiftErrorVRegs(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::FunctionLoweringInfo::set(), tryToElideArgumentCopy(), unpackF64OnRV32DSoftABI(), widenVec(), and llvm::X86CallLowering::X86CallLowering().

◆ getFilterIDFor()

int MachineFunction::getFilterIDFor ( std::vector< unsigned > &  TyIds)

Return the id of the filter encoded by TyIds. This is function wide.

Definition at line 777 of file MachineFunction.cpp.

References E, and I.

Referenced by addFilterTypeInfo().

◆ getFilterIds()

const std::vector<unsigned>& llvm::MachineFunction::getFilterIds ( ) const
inline

Return a reference to the typeids encoding filters used in the current function.

Definition at line 921 of file MachineFunction.h.

Referenced by llvm::EHStreamer::computeActionsTable(), llvm::EHStreamer::emitExceptionTable(), llvm::EHStreamer::emitTypeInfos(), and llvm::ARMException::endFunction().

◆ getFrameInfo() [1/2]

MachineFrameInfo& llvm::MachineFunction::getFrameInfo ( )
inline

getFrameInfo - Return the frame info object for the current function.

This object contains information about objects allocated on the stack frame of the current function in an abstract way.

Definition at line 460 of file MachineFunction.h.

Referenced by llvm::AArch64CallLowering::AArch64CallLowering(), addCalleeSavedRegs(), addExclusiveRegPair(), llvm::addFrameReference(), llvm::RegsForValue::AddInlineAsmOperands(), llvm::LiveRegUnits::addLiveOuts(), llvm::LivePhysRegs::addLiveOutsNoPristines(), llvm::PPCFrameLowering::addScavengingSpillSlot(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), AdjustStackOffset(), llvm::SIMachineFunctionInfo::allocateSGPRSpillToVGPR(), llvm::StatepointLoweringState::allocateStackSlot(), llvm::analyzeArguments(), AnalyzeReturnValues(), llvm::ARCFrameLowering::assignCalleeSavedSpillSlots(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(), assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), llvm::VirtRegMap::assignVirt2Phys(), llvm::VirtRegMap::assignVirt2StackSlot(), llvm::CodeViewDebug::beginFunctionImpl(), llvm::X86TargetLowering::BuildFILD(), buildMUBUFOffsetLoadStore(), calculateSetFPREG(), CalculateTailCallArgDest(), CallingConvSupported(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMFrameLowering::canSimplifyCallFramePseudos(), llvm::Thumb1FrameLowering::canUseAsEpilogue(), llvm::AArch64FrameLowering::canUseRedZone(), CC_Lanai32_VarArg(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), llvm::ARMTargetLowering::CCAssignFnForReturn(), computeCalleeSaveRegisterPairs(), llvm::MIRPrinter::convertStackObjects(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::XCoreFunctionInfo::createEHSpillSlot(), llvm::XCoreFunctionInfo::createFPSpillSlot(), llvm::MipsFunctionInfo::createISRRegFI(), llvm::createLibcall(), llvm::XCoreFunctionInfo::createLRSpillSlot(), llvm::SelectionDAG::CreateStackTemporary(), llvm::createXCoreFrameToArgsOffsetEliminationPass(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::LanaiFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::NVPTXRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::X86RegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Spills(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::Mips16FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::emitFrameDirective(), llvm::HexagonDAGToDAGISel::EmitFunctionEntryCode(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::TargetLoweringBase::emitPatchPoint(), llvm::AVRFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::LanaiFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::AsmPrinter::emitStackSizeSection(), EmitTailCallStoreFPAndRetAddr(), EmitTailCallStoreRetAddr(), enableAllocFrameElim(), llvm::CCState::ensureMaxAlignment(), EnsureStackAlignment(), llvm::BaseIndexOffset::equalBaseIndex(), llvm::MipsFrameLowering::estimateStackSize(), llvm::SITargetLowering::finalizeLowering(), llvm::ARMTargetLowering::finalizeLowering(), findCalledFunction(), findUser(), fixupFuncForFI(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), getAddressForMemoryInput(), llvm::HexagonFrameLowering::getAlignaInstr(), getDwarfRegNum(), llvm::HexagonTargetLowering::GetDynamicTLSAddr(), getFRAMEADDR(), getFrameIndexMMO(), getFrameIndexOperandNum(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::NVPTXFrameLowering::getFrameIndexReference(), llvm::MipsSEFrameLowering::getFrameIndexReference(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::SIFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::AArch64FrameLowering::getFrameIndexReferencePreferSP(), llvm::X86FrameLowering::getFrameIndexReferencePreferSP(), llvm::X86FrameLowering::getFrameIndexReferenceSP(), llvm::R600InstrInfo::getIndirectIndexBegin(), llvm::R600InstrInfo::getIndirectIndexEnd(), llvm::ARMTargetLowering::getJumpTableEncoding(), getLoadStoreOffsetAlign(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), llvm::MipsInstrInfo::GetMemOperand(), getMemsetStores(), llvm::RISCVMachineFunctionInfo::getMoveF64FrameIndex(), llvm::MipsFunctionInfo::getMoveF64ViaSpillFI(), getMOVL(), getNextIntArgReg(), getOpenCLAlignment(), llvm::MipsTargetLowering::getOpndList(), llvm::AArch64InstrInfo::getOutliningType(), llvm::ARMBaseRegisterInfo::getRegPressureLimit(), llvm::MipsRegisterInfo::getReservedRegs(), getRetpolineSymbol(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), GetTLSADDR(), llvm::MipsTargetLowering::getTypeForExtReturn(), getUnderlyingArgReg(), llvm::AArch64TargetLowering::getVaListSizeInBits(), getVectorCompareInfo(), llvm::AArch64FrameLowering::getWinEHFuncletFrameSize(), hasAnyNonFlatUseOfReg(), llvm::LanaiRegisterInfo::hasBasePointer(), llvm::AArch64RegisterInfo::hasBasePointer(), llvm::X86RegisterInfo::hasBasePointer(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::MipsFrameLowering::hasBP(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::RISCVFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::WebAssemblyFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::ARCFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::SIFrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::PPCFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), llvm::AVRFrameLowering::hasReservedCallFrame(), llvm::SparcFrameLowering::hasReservedCallFrame(), llvm::Thumb1FrameLowering::hasReservedCallFrame(), llvm::Mips16FrameLowering::hasReservedCallFrame(), llvm::MipsSEFrameLowering::hasReservedCallFrame(), llvm::RISCVFrameLowering::hasReservedCallFrame(), llvm::WebAssemblyFrameLowering::hasReservedCallFrame(), llvm::MSP430FrameLowering::hasReservedCallFrame(), llvm::ARMFrameLowering::hasReservedCallFrame(), llvm::AArch64FrameLowering::hasReservedCallFrame(), llvm::X86FrameLowering::hasReservedCallFrame(), llvm::SIFrameLowering::hasSP(), haveEfficientBuildVectorPattern(), INITIALIZE_PASS(), llvm::MIRParserImpl::initializeFrameInfo(), llvm::HexagonFrameLowering::insertCFIInstructions(), insertCSRRestores(), InsertLDR_STR(), llvm::Mips16RegisterInfo::intRegClass(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), isConsecutiveLSLoc(), llvm::MachineInstr::isDereferenceableInvariantLoad(), isFuncletReturnInstr(), llvm::XCoreFunctionInfo::isLargeFrame(), llvm::ARCTargetLowering::isLegalAddressingMode(), llvm::PPCTargetLowering::isLegalAddressingMode(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), isSortedByValueNo(), llvm::SystemZInstrInfo::isStackSlotCopy(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::AMDGPUTargetLowering::loadStackInputValue(), lookupCandidateBaseReg(), LoopIsOuterMostWithPredecessor(), LowerADDSUBCARRY(), LowerADJUST_TRAMPOLINE(), LowerAsSplatVectorLoad(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), lowerCallResult(), LowerCallResult(), llvm::TargetLowering::LowerCallTo(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::SparcTargetLowering::LowerF128_LibCallArg(), llvm::SparcTargetLowering::LowerF128Op(), lowerFCOPYSIGN64(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::Nios2TargetLowering::LowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::LanaiTargetLowering::LowerFRAMEADDR(), llvm::MSP430TargetLowering::LowerFRAMEADDR(), llvm::HexagonTargetLowering::LowerFRAMEADDR(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), LowerI64IntToFP_AVX512DQ(), LowerINTRINSIC_W_CHAIN(), llvm::RISCVTargetLowering::LowerOperation(), llvm::X86CallLowering::lowerReturn(), llvm::ARMCallLowering::lowerReturn(), llvm::LanaiTargetLowering::LowerRETURNADDR(), llvm::MSP430TargetLowering::LowerRETURNADDR(), llvm::HexagonTargetLowering::LowerRETURNADDR(), LowerRETURNADDR(), llvm::MipsTargetLowering::lowerSTORE(), llvm::TargetLowering::LowerToTLSEmulatedModel(), LowerToTLSExecModel(), lowerUINT_TO_FP_vec(), LowerVASTART(), LowerVectorINT_TO_FP(), llvm::SparcTargetLowering::makeAddress(), llvm::Mips16InstrInfo::makeFrame(), MatchingStackOffset(), matchPair(), llvm::MachineInstr::mayAlias(), mayTailCallThisCC(), llvm::AArch64Subtarget::mirFileLoaded(), llvm::HexagonFrameLowering::needsAligna(), llvm::PPCFrameLowering::needsFP(), llvm::AArch64RegisterInfo::needsFrameBaseReg(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::X86FrameLowering::needsFrameIndexResolution(), llvm::TargetFrameLowering::needsFrameIndexResolution(), llvm::WebAssemblyFrameLowering::needsPrologForEH(), llvm::TargetRegisterInfo::needsStackRealignment(), false::IntervalSorter::operator()(), llvm::X86FrameLowering::orderFrameObjects(), PrepareCall(), llvm::MIRPrinter::print(), llvm::MIPrinter::print(), llvm::MachineInstr::print(), printMemOperand(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::RISCVFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SystemZFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), llvm::MSP430FrameLowering::processFunctionBeforeFrameFinalized(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::replaceFPWithRealFP(), llvm::ARMTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::SIRegisterInfo::requiresFrameIndexReplacementScavenging(), llvm::SIRegisterInfo::requiresFrameIndexScavenging(), llvm::SIRegisterInfo::requiresRegisterScavenging(), reservePrivateMemoryRegs(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Mips16InstrInfo::restoreFrame(), llvm::SIRegisterInfo::restoreSGPR(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::AVRFrameAnalyzer::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::HexagonDAGToDAGISel::SelectAddrFI(), llvm::HexagonDAGToDAGISel::SelectFrameIndex(), llvm::FastISel::selectStackmap(), llvm::FunctionLoweringInfo::set(), ShouldSignReturnAddress(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), llvm::Mips16FrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), spillIncomingStatepointValue(), llvm::SIRegisterInfo::spillSGPR(), llvm::CriticalAntiDepBreaker::StartBlock(), llvm::AggressiveAntiDepBreaker::StartBlock(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::X86InstrInfo::storeRegToStackSlot(), llvm::SystemZInstrInfo::SystemZInstrInfo(), tryToElideArgumentCopy(), unpackF64OnRV32DSoftABI(), UnpackFromArgumentSlot(), unpackFromMemLoc(), updateLiveness(), llvm::HexagonPacketizerList::useCalleesSP(), llvm::HexagonPacketizerList::useCallersSP(), verifyLeafProcRegUse(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), widenVec(), WindowsRequiresStackProbe(), windowsRequiresStackProbe(), and X86ChooseCmpImmediateOpcode().

◆ getFrameInfo() [2/2]

const MachineFrameInfo& llvm::MachineFunction::getFrameInfo ( ) const
inline

Definition at line 461 of file MachineFunction.h.

◆ getFrameInstructions()

const std::vector<MCCFIInstruction>& llvm::MachineFunction::getFrameInstructions ( ) const
inline

Returns a reference to a list of cfi instructions in the function's prologue.

Used to construct frame maps for debug and exception handling comsumers.

Definition at line 788 of file MachineFunction.h.

Referenced by llvm::AsmPrinter::emitCFIInstruction().

◆ getFunction()

const Function& llvm::MachineFunction::getFunction ( ) const
inline

Return the LLVM function that this machine code represents.

Definition at line 430 of file MachineFunction.h.

References F(), and getName().

Referenced by llvm::AArch64FunctionInfo::AArch64FunctionInfo(), addEpilogOnlyR10(), addExclusiveRegPair(), adjCycles(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::NVPTXTargetLowering::allowUnsafeFPMath(), llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), llvm::analyzeArguments(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), AnalyzeReturnValues(), areCallingConvEligibleForTCO_64SVR4(), areCandidatesToMergeOrPair(), AssignProtectedObjSet(), llvm::DwarfCFIException::beginFragment(), llvm::WinException::beginFunclet(), llvm::DwarfCFIException::beginFunction(), llvm::WinException::beginFunction(), llvm::DebugHandlerBase::beginFunction(), llvm::CodeViewDebug::beginFunctionImpl(), llvm::DwarfDebug::beginFunctionImpl(), llvm::DwarfDebug::beginInstruction(), llvm::MachineIRBuilderBase::buildConstant(), llvm::MachineIRBuilderBase::buildFConstant(), llvm::TargetLowering::BuildSDIVPow2(), llvm::SIInstrInfo::calculateLDSSpillAddress(), calculateSetFPREG(), callHasRegMask(), CallingConvSupported(), CanCombineFCOPYSIGN_EXTEND_ROUND(), canLowerToLDG(), llvm::AArch64TargetLowering::canMergeStoresTo(), llvm::X86TargetLowering::canMergeStoresTo(), canMoveInstsAcrossMemOp(), CanMovePastDMB(), llvm::TargetRegisterInfo::canRealignStack(), llvm::AArch64FrameLowering::canUseRedZone(), CC_Lanai32_VarArg(), CC_RISCV(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), llvm::ARMTargetLowering::CCAssignFnForReturn(), checkNumAlignedDPRCS2Regs(), llvm::rdf::DataFlowGraph::DefStack::clear_block(), CombineCVTAToLocal(), combineFMinNumFMaxNum(), combineMul(), combineOr(), combineStore(), llvm::X86InstrInfo::commuteInstructionImpl(), computeBranchTargetAndInversion(), computeCalleeSaveRegisterPairs(), ConvertDoubleToBytes(), ConvertImplicitDefToConstZero(), llvm::createHexagonHardwareLoops(), llvm::XCoreFunctionInfo::createLRSpillSlot(), createPHIsForCMOVsInSinkBB(), llvm::createRegUsageInfoCollector(), llvm::createSIWholeQuadModePass(), llvm::createSystemZLDCleanupPass(), llvm::createX86FixupBWInsts(), llvm::createX86FixupLEAs(), llvm::createX86GlobalBaseRegPass(), llvm::createX86IndirectBranchTrackingPass(), llvm::createX86OptimizeLEAs(), llvm::createX86PadShortFunctions(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetOptions::DisableFramePointerElim(), doesNotGeneratecode(), duplicateCPV(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCRegisterInfo::eliminateFrameIndex(), emitBasicBlockLoopComments(), emitClzero(), llvm::AsmPrinter::EmitDebugThreadLocal(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyEnd(), llvm::WebAssemblyAsmPrinter::EmitFunctionBodyStart(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart(), llvm::MipsAsmPrinter::EmitFunctionBodyStart(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), EmitGCCInlineAsmStr(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::AMDGPU::HSAMD::MetadataStreamer::emitKernel(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::AArch64TargetLowering::EmitLoweredCatchRet(), emitNonHSAIntrinsicError(), emitPostSt(), llvm::AVRFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), emitRemovedIntrinsicError(), llvm::AArch64RegisterInfo::emitReservedArgRegCallError(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), llvm::AsmPrinter::emitXRayTable(), enableAllocFrameElim(), llvm::HexagonFrameLowering::enableCalleeSaveSkip(), llvm::ARMFrameLowering::enableCalleeSaveSkip(), llvm::TargetFrameLowering::enableCalleeSaveSkip(), llvm::GCNSubtarget::enableIEEEBit(), llvm::X86FrameLowering::enableShrinkWrapping(), llvm::WinException::endFunclet(), llvm::ARMException::endFunction(), llvm::WinException::endFunction(), llvm::CodeViewDebug::endFunctionImpl(), llvm::DwarfDebug::endFunctionImpl(), EnsureStackAlignment(), EraseBBsAndChildren(), errorUnsupported(), ExpandMOVImmSExti8(), ExpandPowI(), fail(), findCalledFunction(), findIncDecAfter(), llvm::LexicalScopes::findLexicalScope(), findSingleRegDef(), findUnwindDestinations(), findUser(), foldFPToIntToFP(), llvm::X86InstrInfo::foldMemoryOperandImpl(), get64BitArgumentXMMs(), llvm::MSP430RegisterInfo::getCalleeSavedRegs(), llvm::RISCVRegisterInfo::getCalleeSavedRegs(), llvm::AVRRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::SIRegisterInfo::getCalleeSavedRegs(), llvm::SystemZRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::PPCRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::X86RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::RISCVRegisterInfo::getCallPreservedMask(), llvm::AArch64RegisterInfo::getCallPreservedMask(), llvm::SystemZRegisterInfo::getCallPreservedMask(), llvm::X86RegisterInfo::getCallPreservedMask(), llvm::ARMBaseRegisterInfo::getCallPreservedMask(), llvm::SelectionDAG::getConstantPool(), getDivRemArgList(), llvm::getEHScopeMembership(), getElementByteSizeValue(), llvm::ARMTargetLowering::getExceptionSelectorRegister(), getFPReg(), llvm::X86RegisterInfo::getGPRsForTailCall(), llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), getIRBlockFromSlot(), llvm::ARMTargetLowering::getJumpTableEncoding(), getLayoutSuccessorProbThreshold(), getLoadStackGuard(), llvm::GCNSubtarget::getMaxNumSGPRs(), llvm::GCNSubtarget::getMaxNumVGPRs(), llvm::X86TargetLowering::getMaxSupportedInterleaveFactor(), getMopState(), getMOVL(), getName(), getNewValueJumpOpcode(), llvm::AMDGPUSubtarget::getOccupancyWithLocalMemSize(), getOModValue(), getOpenCLAlignment(), llvm::ARMBaseInstrInfo::getOperandLatency(), llvm::ARMTargetLowering::getOptimalMemOpType(), llvm::AArch64TargetLowering::getOptimalMemOpType(), llvm::X86TargetLowering::getOptimalMemOpType(), llvm::PPCTargetLowering::getOptimalMemOpType(), getOrExecSource(), llvm::AArch64InstrInfo::getOutliningCandidateInfo(), llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(), getReassignedChan(), getRecipEstimateForFunc(), llvm::SIRegisterInfo::getRegPressureLimit(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::X86RegisterInfo::getReservedRegs(), getRsrcReg(), GetScratchRegister(), llvm::MipsCCState::getSpecialCallingConvForCallee(), llvm::TargetFrameLowering::getStackAlignmentSkew(), llvm::X86TargetLowering::getStackProbeSymbolName(), getStartOrEndSlot(), getSubOpcode(), getTag(), getUnderlyingArgReg(), getUnderlyingObjects(), getVariantKind(), getVCmpInst(), giveUpWithRemarks(), llvm::CallLowering::handleAssignments(), handleNormalInst(), hasAnyNonFlatUseOfReg(), hasDebugInfo(), llvm::HexagonFrameLowering::hasFP(), HasNestArgument(), hasNonFlagsUse(), hasReturnsTwiceAttr(), llvm::ARMTargetLowering::hasStandaloneRem(), hasVulnerableLoad(), llvm::HexagonEvaluator::HexagonEvaluator(), llvm::SelectionDAG::init(), llvm::LexicalScopes::initialize(), INITIALIZE_PASS(), llvm::MIRParserImpl::initializeConstantPool(), llvm::MIRParserImpl::initializeFrameInfo(), initSlots2Values(), InsertBitToMaskVector(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::PPCTargetLowering::insertCopiesSplitCSR(), insertCopy(), insertCSRRestores(), insertDeleteInstructions(), InsertLDR_STR(), isCalleeLoad(), isCompareZero(), isEFLAGSLive(), llvm::HexagonTargetLowering::IsEligibleForTailCallOptimization(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isFpMulInstruction(), isFuncletReturnInstr(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), llvm::X86InstrInfo::isFunctionSafeToOutlineFrom(), isHardwareLoop(), llvm::X86TargetLowering::isIntDivCheap(), llvm::PPCTargetLowering::isLegalAddressingMode(), isLiveOut(), isMinSize(), isNopCopy(), isNoReturnDef(), isOptNone(), isOptSize(), llvm::ARMBaseInstrInfo::isProfitableToIfCvt(), llvm::ARMTargetLowering::isReadOnly(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSortedByValueNo(), isSupportedType(), isTargetConstant(), IsUnconditionalJump(), isVirtualRegisterOperand(), llvm::ARMLegalizerInfo::legalizeCustom(), llvm::SIInstrInfo::legalizeOperands(), llvm::LegalizerHelper::libcall(), llvm::SIMachineFunctionInfo::limitOccupancy(), llvm::XCoreInstrInfo::loadImmediate(), llvm::MipsSEInstrInfo::loadRegFromStack(), LoopIsOuterMostWithPredecessor(), llvm::LegalizerHelper::lower(), LowerAndToBT(), lowerAtomicArithWithLOCK(), lowerBuildVectorAsBroadcast(), llvm::X86CallLowering::lowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::AsmPrinter::lowerConstant(), llvm::AMDGPUTargetLowering::LowerDYNAMIC_STACKALLOC(), LowerEXTRACT_SUBVECTOR(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::NVPTXTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerFPOWI(), LowerFPToInt(), llvm::AMDGPUTargetLowering::LowerGlobalAddress(), LowerInterruptReturn(), llvm::BPFTargetLowering::LowerOperation(), llvm::X86CallLowering::lowerReturn(), llvm::AMDGPUCallLowering::lowerReturn(), llvm::AArch64CallLowering::lowerReturn(), llvm::MipsCallLowering::lowerReturn(), llvm::NVPTXTargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), llvm::AMDGPUTargetLowering::lowerUnhandledCall(), LowerVACOPY(), LowerVASTART(), llvm::SparcTargetLowering::makeAddress(), llvm::X86TargetLowering::markLibCallAttributes(), MatchingStackOffset(), matchPair(), matchSwap(), mayTailCallThisCC(), memOpsHaveSameBasePtr(), moveInstrOut(), llvm::LegalizerHelper::narrowScalar(), needFuncLabelsForEHOrDebugInfo(), llvm::AsmPrinter::needsCFIMoves(), llvm::PPCFrameLowering::needsFP(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::ARCRegisterInfo::needsFrameMoves(), llvm::WebAssemblyFrameLowering::needsPrologForEH(), llvm::AsmPrinter::needsSEHMoves(), llvm::TargetRegisterInfo::needsStackRealignment(), needsWinCFI(), llvm::TargetFrameLowering::noFramePointerElim(), normalizePBQPSpillWeight(), false::IntervalSorter::operator()(), llvm::OptLevelChanger::OptLevelChanger(), parseCachePolicy(), parseCond(), Passv64i1ArgInRegs(), performXorCombine(), PrepareCall(), llvm::MIRPrinter::print(), llvm::MIPrinter::print(), print(), llvm::MachineBasicBlock::print(), llvm::MachineInstr::print(), printMemOperand(), llvm::X86FrameLowering::processFunctionBeforeFrameFinalized(), produceCompactUnwindFrame(), ProfitableToMerge(), promoteToConstantPool(), llvm::AsmPrinter::recordSled(), reduceVMULWidth(), removeDebugValues(), removeRedundantBlockingStores(), llvm::ARMTargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), reportIllegalCopy(), reservePrivateMemoryRegs(), llvm::MipsTargetMachine::resetSubtarget(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::X86FrameLowering::restoreCalleeSavedRegisters(), llvm::Legalizer::runOnMachineFunction(), llvm::BreakFalseDeps::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::X86AsmPrinter::runOnMachineFunction(), llvm::MachineOptimizationRemarkEmitterPass::runOnMachineFunction(), llvm::NVPTXAsmPrinter::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), salvageDebugInfoFromEmptyBlock(), scaleCaseProbality(), llvm::AsmPrinter::SetupMachineFunction(), shouldCombineToHorizontalOp(), shouldLowerMemFuncForSize(), llvm::AArch64InstrInfo::shouldOutlineFromFunctionByDefault(), shouldPreventUndefRegUpdateMemFold(), ShouldSignReturnAddress(), ShouldSignWithAKey(), shouldSplitStack(), llvm::TailDuplicator::shouldTailDuplicate(), ShrinkLoadReplaceStoreWithStore(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), simplifyDivRem(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::MipsSEFrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), splitStores(), llvm::MipsSEInstrInfo::storeRegToStack(), false::Chain::str(), llvm::AArch64TargetLowering::supportSplitCSR(), llvm::PPCTargetLowering::supportSplitCSR(), tieOpsIfNeeded(), toString(), llvm::tryFoldSPUpdateIntoPushPop(), unpackF64OnRV32DSoftABI(), UnpackFromArgumentSlot(), UpdateCPSRUse(), usedAsAddr(), llvm::NVPTXTargetLowering::useF32FTZ(), llvm::ARMSubtarget::useMovt(), llvm::R600InstrInfo::usesTextureCache(), llvm::ARMSubtarget::useStride4VFPs(), llvm::R600InstrInfo::usesVertexCache(), VerifyLowRegs(), VisitGlobalVariableForEmission(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), WarnSize(), llvm::LegalizerHelper::widenScalar(), WindowsRequiresStackProbe(), windowsRequiresStackProbe(), and llvm::OptLevelChanger::~OptLevelChanger().

◆ getFunctionNumber()

unsigned llvm::MachineFunction::getFunctionNumber ( ) const
inline

◆ getInfo() [1/2]

template<typename Ty >
Ty* llvm::MachineFunction::getInfo ( )
inline

getInfo - Keep track of various per-function pieces of information for backends that would like to do so.

Definition at line 538 of file MachineFunction.h.

References Allocator.

Referenced by addExclusiveRegPair(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::analyzeArguments(), AnalyzeReturnValues(), llvm::X86FrameLowering::assignCalleeSavedSpillSlots(), llvm::SIInstrInfo::calculateLDSSpillAddress(), CalculateTailCallSPDiff(), CallingConvSupported(), llvm::X86InstrInfo::canMakeTailCallConditional(), llvm::AArch64FrameLowering::canUseRedZone(), CC_Lanai32_VarArg(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), llvm::ARMTargetLowering::CCAssignFnForReturn(), changeFCMPPredToAArch64CC(), checkNumAlignedDPRCS2Regs(), llvm::WebAssemblyInstrInfo::commuteInstructionImpl(), llvm::computeBlockSize(), computeCalleeSaveRegisterPairs(), computeWeight(), llvm::createSystemZLDCleanupPass(), llvm::createX86GlobalBaseRegPass(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::SparcFrameLowering::determineCalleeSaves(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::AMDGPUAsmPrinter::doFinalization(), duplicateCPV(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::Thumb1FrameLowering::emitEpilogue(), llvm::MipsSEFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::RISCVFrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyEnd(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart(), llvm::X86AsmPrinter::EmitFunctionBodyStart(), llvm::HexagonDAGToDAGISel::EmitFunctionEntryCode(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::AVRFrameLowering::emitPrologue(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::RISCVFrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::PPCFrameLowering::enableShrinkWrapping(), llvm::AArch64FrameLowering::enableStackSlotScavenging(), EnsureStackAlignment(), estimateRSStackSizeLimit(), ExpandMOVImmSExti8(), llvm::SITargetLowering::finalizeLowering(), findStartOfTree(), findTemporariesForLR(), findUser(), fixupFuncForFI(), llvm::HexagonFrameLowering::getAlignaInstr(), getAllSGPRs(), llvm::HexagonRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::PPCRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::X86RegisterInfo::getCalleeSavedRegsViaCopy(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegsViaCopy(), getConstant(), GetDepth(), getElementByteSizeValue(), llvm::ARMTargetLowering::getExceptionSelectorRegister(), getFPTernOp(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferencePreferSP(), llvm::SIRegisterInfo::getFrameRegister(), llvm::MipsDAGToDAGISel::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::MipsTargetLowering::getGlobalReg(), llvm::AMDGPUTargetLowering::getImplicitParameterOffset(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::ARMTargetLowering::getJumpTableEncoding(), getLoadExtOrTrunc(), llvm::PPCInstrInfo::getLoadOpcodeForSpill(), getLoadStoreOffsetAlign(), llvm::GCNSubtarget::getMaxNumSGPRs(), llvm::GCNSubtarget::getMaxNumVGPRs(), getMopState(), getMOVL(), llvm::AMDGPUSubtarget::getOccupancyWithLocalMemSize(), getOModValue(), llvm::MipsTargetLowering::getOpndList(), llvm::AArch64InstrInfo::getOutliningType(), llvm::R600AsmPrinter::getPassName(), llvm::SIRegisterInfo::getRegPressureLimit(), llvm::GCNSubtarget::getReservedNumSGPRs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::SIRegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), getRetpolineSymbol(), llvm::MSP430TargetLowering::getReturnAddressFrameIndex(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), getRsrcReg(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), getSubOpcode(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::MipsTargetLowering::getTypeForExtReturn(), llvm::AArch64FrameLowering::getWinEHFuncletFrameSize(), llvm::X86FrameLowering::getWinEHParentFrameOffset(), handleNormalInst(), hasAnyNonFlatUseOfReg(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::AVRFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), hasNonRISpills(), llvm::X86FrameLowering::hasReservedCallFrame(), llvm::PPCRegisterInfo::hasReservedSpillSlot(), hasSpills(), INITIALIZE_PASS(), llvm::AArch64TargetLowering::initializeSplitCSR(), llvm::PPCTargetLowering::initializeSplitCSR(), llvm::X86FrameLowering::inlineStackProbe(), llvm::ARMBaseInstrInfo::insertBranch(), InsertLDR_STR(), llvm::intCCToAVRCC(), isCopy(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isFuncletReturnInstr(), llvm::AArch64InstrInfo::isFunctionSafeToOutlineFrom(), llvm::X86InstrInfo::isFunctionSafeToOutlineFrom(), llvm::X86TargetLowering::isIntDivCheap(), llvm::PPCTargetLowering::isLegalAddressingMode(), llvm::ARMBaseInstrInfo::isPredicable(), llvm::ARMTargetLowering::isReadOnly(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSortedByValueNo(), isStackPtrRelative(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), llvm::WebAssemblyMCInstLower::Lower(), llvm::LowerARMMachineInstrToMCInst(), llvm::SITargetLowering::LowerCall(), lowerCallResult(), LowerCallResult(), llvm::HexagonTargetLowering::LowerEH_RETURN(), lowerFCOPYSIGN64(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), llvm::SparcTargetLowering::LowerFormalArguments_64(), llvm::HexagonTargetLowering::LowerINLINEASM(), LowerInterruptReturn(), LowerINTRINSIC_W_CHAIN(), llvm::R600TargetLowering::LowerOperation(), llvm::RISCVTargetLowering::LowerOperation(), llvm::SITargetLowering::LowerOperation(), llvm::AMDGPUCallLowering::lowerReturn(), llvm::SITargetLowering::LowerReturn(), llvm::SparcTargetLowering::LowerReturn_32(), LowerToTLSLocalDynamicModel(), llvm::LanaiTargetLowering::LowerVASTART(), llvm::MSP430TargetLowering::LowerVASTART(), llvm::HexagonTargetLowering::LowerVASTART(), LowerVASTART(), LowerWRITE_REGISTER(), MatchingStackOffset(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), mayTailCallThisCC(), MoveAndTeeForMultiUse(), MustSaveLR(), llvm::PPCFrameLowering::needsFP(), llvm::ARMBaseRegisterInfo::needsFrameBaseReg(), llvm::X86FrameLowering::needsFrameIndexResolution(), parseCachePolicy(), Passv64i1ArgInRegs(), PrepareCall(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::HexagonFrameLowering::processFunctionBeforeFrameFinalized(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), promoteToConstantPool(), readsVCCZ(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::SIRegisterInfo::requiresFrameIndexReplacementScavenging(), llvm::SIRegisterInfo::requiresFrameIndexScavenging(), llvm::SIRegisterInfo::requiresRegisterScavenging(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::ARMFrameLowering::restoreCalleeSavedRegisters(), llvm::SIRegisterInfo::restoreSGPR(), llvm::R600AsmPrinter::runOnMachineFunction(), llvm::WebAssemblyAsmPrinter::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::MipsAsmPrinter::runOnMachineFunction(), llvm::AVRFrameAnalyzer::runOnMachineFunction(), llvm::GCNIterativeScheduler::scheduleILP(), llvm::GCNIterativeScheduler::scheduleLegacyMaxOccupancy(), llvm::GCNIterativeScheduler::scheduleMinReg(), llvm::HexagonDAGToDAGISel::SelectFrameIndex(), setUsesTOCBasePtr(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::ARMFrameLowering::spillCalleeSavedRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), spillsCR(), llvm::SIRegisterInfo::spillSGPR(), spillsVRSAVE(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), llvm::SITargetLowering::supportSplitCSR(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), unpackF64OnRV32DSoftABI(), UnpackFromArgumentSlot(), VisitGlobalVariableForEmission(), and windowsRequiresStackProbe().

◆ getInfo() [2/2]

template<typename Ty >
const Ty* llvm::MachineFunction::getInfo ( ) const
inline

Definition at line 545 of file MachineFunction.h.

◆ getInstructionCount()

unsigned llvm::MachineFunction::getInstructionCount ( ) const
inline

Return the number of MachineInstrs in this MachineFunction.

Definition at line 661 of file MachineFunction.h.

References InstrCount.

Referenced by INITIALIZE_PASS().

◆ getJTISymbol()

MCSymbol * MachineFunction::getJTISymbol ( unsigned  JTI,
MCContext Ctx,
bool  isLinkerPrivate = false 
) const

getJTISymbol - Return the MCSymbol for the specified non-empty jump table.

Return the MCSymbol for the specified non-empty jump table.

If isLinkerPrivate is specified, an 'l' label is returned, otherwise a normal 'L' label is returned.

Definition at line 587 of file MachineFunction.cpp.

References assert(), getDataLayout(), getFunctionNumber(), llvm::DataLayout::getLinkerPrivateGlobalPrefix(), llvm::MCContext::getOrCreateSymbol(), llvm::DataLayout::getPrivateGlobalPrefix(), Name, llvm::cl::Prefix, and size().

Referenced by llvm::AsmPrinter::GetJTISymbol(), and llvm::TargetLowering::getPICJumpTableRelocBaseExpr().

◆ getJumpTableInfo() [1/2]

const MachineJumpTableInfo* llvm::MachineFunction::getJumpTableInfo ( ) const
inline

getJumpTableInfo - Return the jump table info object for the current function.

This object contains information about jump tables in the current function. If the current function has no jump tables, this will return null.

Definition at line 467 of file MachineFunction.h.

Referenced by CallingConvSupported(), llvm::MipsAsmPrinter::EmitDebugThreadLocal(), llvm::ARMAsmPrinter::EmitJumpTableAddrs(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMAsmPrinter::EmitJumpTableInsts(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::XCoreTargetLowering::getJumpTableEncoding(), INITIALIZE_PASS(), llvm::MIRPrinter::print(), and salvageDebugInfoFromEmptyBlock().

◆ getJumpTableInfo() [2/2]

MachineJumpTableInfo* llvm::MachineFunction::getJumpTableInfo ( )
inline

Definition at line 468 of file MachineFunction.h.

◆ getLandingPads()

const std::vector<LandingPadInfo>& llvm::MachineFunction::getLandingPads ( ) const
inline

◆ getMachineMemOperand() [1/3]

MachineMemOperand * MachineFunction::getMachineMemOperand ( MachinePointerInfo  PtrInfo,
MachineMemOperand::Flags  f,
uint64_t  s,
unsigned  base_alignment,
const AAMDNodes AAInfo = AAMDNodes(),
const MDNode Ranges = nullptr,
SyncScope::ID  SSID = SyncScope::System,
AtomicOrdering  Ordering = AtomicOrdering::NotAtomic,
AtomicOrdering  FailureOrdering = AtomicOrdering::NotAtomic 
)

getMachineMemOperand - Allocate a new MachineMemOperand.

MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.

Definition at line 386 of file MachineFunction.cpp.

Referenced by llvm::AArch64CallLowering::AArch64CallLowering(), llvm::addFrameReference(), llvm::X86TargetLowering::BuildFILD(), buildMUBUFOffsetLoadStore(), canTurnIntoCOPY(), ConvertSelectToConcatVector(), llvm::FastISel::createMachineMemOperandFor(), emitClzero(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::TargetLoweringBase::emitPatchPoint(), enableAllocFrameElim(), expandLoadStackGuard(), extractLoadMMOs(), extractStoreMMOs(), findPotentialBlockers(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getAtomicCmpSwap(), getContiguousRangeOfSetBits(), getFrameIndexMMO(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::MipsInstrInfo::GetMemOperand(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTruncStore(), llvm::ARMInstrInfo::getUnindexedOpcode(), isSupportedType(), llvm::AArch64LegalizerInfo::legalizeCustom(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MSP430InstrInfo::loadRegFromStackSlot(), llvm::XCoreInstrInfo::loadRegFromStackSlot(), llvm::ARCInstrInfo::loadRegFromStackSlot(), llvm::AVRInstrInfo::loadRegFromStackSlot(), llvm::SparcInstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::HexagonInstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), llvm::ARMBaseInstrInfo::loadRegFromStackSlot(), llvm::PPCInstrInfo::loadRegFromStackSlot(), LowerADJUST_TRAMPOLINE(), llvm::X86CallLowering::lowerReturn(), llvm::ARMCallLowering::lowerReturn(), llvm::AMDGPUCallLowering::lowerReturn(), lowerUINT_TO_FP_vec(), llvm::HexagonTargetLowering::LowerUnalignedLoad(), lowerVectorShuffleAsBroadcast(), narrowExtractedVectorLoad(), llvm::LegalizerHelper::narrowScalar(), parseCachePolicy(), llvm::PPCTargetLowering::PerformDAGCombine(), PrepareCall(), removePhis(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), llvm::SIRegisterInfo::restoreSGPR(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), llvm::Thumb1InstrInfo::storeRegToStackSlot(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::MSP430InstrInfo::storeRegToStackSlot(), llvm::XCoreInstrInfo::storeRegToStackSlot(), llvm::ARCInstrInfo::storeRegToStackSlot(), llvm::AVRInstrInfo::storeRegToStackSlot(), llvm::SparcInstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::HexagonInstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), llvm::ARMBaseInstrInfo::storeRegToStackSlot(), llvm::PPCInstrInfo::storeRegToStackSlot(), widenVec(), and llvm::X86CallLowering::X86CallLowering().

◆ getMachineMemOperand() [2/3]

MachineMemOperand * MachineFunction::getMachineMemOperand ( const MachineMemOperand MMO,
int64_t  Offset,
uint64_t  Size 
)

getMachineMemOperand - Allocate a new MachineMemOperand by copying an existing one, adjusting by an offset and using the given size.

MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.

Definition at line 397 of file MachineFunction.cpp.

References llvm::MachineMemOperand::getBaseAlignment(), llvm::MachineMemOperand::getFailureOrdering(), llvm::MachineMemOperand::getFlags(), llvm::MachineMemOperand::getOffset(), llvm::MachineMemOperand::getOrdering(), llvm::MachineMemOperand::getPseudoValue(), llvm::MachineMemOperand::getSyncScopeID(), llvm::MachineMemOperand::getValue(), and Size.

◆ getMachineMemOperand() [3/3]

MachineMemOperand * MachineFunction::getMachineMemOperand ( const MachineMemOperand MMO,
const AAMDNodes AAInfo 
)

◆ getMMI()

MachineModuleInfo& llvm::MachineFunction::getMMI ( ) const
inline

Definition at line 421 of file MachineFunction.h.

Referenced by addLandingPad(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::AMDGPUMachineFunction::AMDGPUMachineFunction(), AssignProtectedObjSet(), llvm::DwarfCFIException::beginFunction(), CallingConvSupported(), llvm::createSIDebuggerInsertNopsPass(), llvm::createX86IndirectBranchTrackingPass(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitEpilogue(), llvm::MachineInstr::emitError(), llvm::Thumb1FrameLowering::emitPrologue(), llvm::Mips16FrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::PPCFrameLowering::emitPrologue(), llvm::X86TargetLowering::expandIndirectJTBranch(), ExpandMOVImmSExti8(), getMemCmpLoad(), getMOVL(), llvm::AArch64InstrInfo::getOutliningType(), getRetpolineSymbol(), getUnderlyingArgReg(), llvm::TailDuplicator::initMF(), llvm::HexagonFrameLowering::insertCFIInstructions(), llvm::SelectionDAGBuilder::lowerInvokable(), llvm::XCoreRegisterInfo::needsFrameMoves(), llvm::ARCRegisterInfo::needsFrameMoves(), recoverFramePointer(), and llvm::X86AsmPrinter::runOnMachineFunction().

◆ getName()

StringRef MachineFunction::getName ( ) const

getName - Return the name of the corresponding LLVM function.

Definition at line 457 of file MachineFunction.cpp.

References getFunction(), and llvm::Value::getName().

Referenced by adjCycles(), AppendEndToFunction(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::MachineBlockFrequencyInfo::calculate(), llvm::calculateSpillWeightsAndHints(), llvm::Combiner::combineMachineInstrs(), computeWeight(), llvm::createRegUsageInfoCollector(), llvm::createSIFixWWMLivenessPass(), llvm::createX86RetpolineThunksPass(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::MipsRegisterInfo::eliminateFrameIndex(), llvm::ARCFrameLowering::emitEpilogue(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), llvm::SparcFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::GCNScheduleDAGMILive::finalizeSchedule(), findCalledFunction(), findStartOfTree(), getCmpForPseudo(), llvm::MachineBasicBlock::getFullName(), llvm::DOTGraphTraits< ScheduleDAG * >::getGraphName(), llvm::DOTGraphTraits< SelectionDAG * >::getGraphName(), llvm::DOTGraphTraits< const MachineFunction * >::getGraphName(), llvm::DOTGraphTraits< ScheduleDAGMI * >::getGraphName(), getNewValueJumpOpcode(), getStartOrEndSlot(), getUnderlyingArgReg(), giveUpWithRemarks(), handleNormalInst(), HasArgumentDef(), hasVulnerableLoad(), INITIALIZE_PASS(), insertDeleteInstructions(), llvm::AArch64InstrInfo::insertOutlinedCall(), llvm::X86InstrInfo::insertOutlinedCall(), isImmValidForOpcode(), llvm::SelectionDAGISel::isOrEquivalentToAdd(), IsPseudoCallIndirect(), isTerminalReg(), isVirtualRegisterOperand(), LoopIsOuterMostWithPredecessor(), LowerDYNAMIC_STACKALLOC(), MoveAndTeeForMultiUse(), normalizePBQPSpillWeight(), false::IntervalSorter::operator()(), optimizeCall(), parseCond(), PrepareCall(), llvm::MIRPrinter::print(), print(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), replaceShuffleOfInsert(), reportFastISelFailure(), llvm::reportGISelFailure(), llvm::ARCFrameLowering::restoreCalleeSavedRegisters(), RewriteP2Align(), runOnBasicBlock(), llvm::InstructionSelect::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::Localizer::runOnMachineFunction(), llvm::RegBankSelect::runOnMachineFunction(), llvm::MIRParserImpl::setupRegisterInfo(), SortBlocks(), llvm::ARCFrameLowering::spillCalleeSavedRegisters(), splitBlock(), subRangeLiveAt(), toString(), verify(), llvm::MachineDominatorTree::verifyAnalysis(), viewCFG(), and viewCFGOnly().

◆ getNumBlockIDs()

unsigned llvm::MachineFunction::getNumBlockIDs ( ) const
inline

◆ getOrCreateJumpTableInfo()

MachineJumpTableInfo * MachineFunction::getOrCreateJumpTableInfo ( unsigned  EntryKind)

getOrCreateJumpTableInfo - Get the JumpTableInfo for this function, if it does already exist, allocate one.

Get the JumpTableInfo for this function.

If it does not already exist, allocate one.

Definition at line 264 of file MachineFunction.cpp.

Referenced by getDataLayout(), llvm::MIRParserImpl::initializeJumpTableInfo(), llvm::ARMTargetLowering::ReplaceNodeResults(), and tryToElideArgumentCopy().

◆ getOrCreateLandingPadInfo()

LandingPadInfo & MachineFunction::getOrCreateLandingPadInfo ( MachineBasicBlock LandingPad)

◆ getPICBaseSymbol()

MCSymbol * MachineFunction::getPICBaseSymbol ( ) const

◆ getProperties() [1/2]

const MachineFunctionProperties& llvm::MachineFunction::getProperties ( ) const
inline

◆ getProperties() [2/2]

MachineFunctionProperties& llvm::MachineFunction::getProperties ( )
inline

Definition at line 532 of file MachineFunction.h.

◆ getPSVManager()

PseudoSourceValueManager& llvm::MachineFunction::getPSVManager ( ) const
inline

◆ getRegInfo() [1/2]

MachineRegisterInfo& llvm::MachineFunction::getRegInfo ( )
inline

getRegInfo - Return information about the registers currently in use.

Definition at line 454 of file MachineFunction.h.

Referenced by addCalleeSavedRegs(), addEpilogOnlyR10(), llvm::RegsForValue::AddInlineAsmOperands(), llvm::MachineBasicBlock::addLiveIn(), addLiveIn(), addLiveIn(), addRegsToSet(), adjCycles(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::SITargetLowering::AdjustInstrPostInstrSelection(), llvm::SIMachineFunctionInfo::allocateSGPRSpillToVGPR(), llvm::AllocationOrder::AllocationOrder(), allPhiOperandsUndefined(), llvm::AMDGPUInstructionSelector::AMDGPUInstructionSelector(), llvm::analyzeArguments(), AnalyzeReturnValues(), AppendEndToFunction(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(), assignCalleeSavedSpillSlots(), llvm::VirtRegMap::assignVirt2StackSlot(), buildEXP(), buildMUBUFOffsetLoadStore(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::calculateSpillWeightsAndHints(), callHasRegMask(), CallingConvSupported(), canCombine(), canCompareBeNewValueJump(), canFoldCopy(), llvm::AArch64InstrInfo::canInsertSelect(), llvm::SystemZInstrInfo::canInsertSelect(), llvm::SIInstrInfo::canInsertSelect(), llvm::PPCInstrInfo::canInsertSelect(), llvm::X86InstrInfo::canInsertSelect(), canMoveInstsAcrossMemOp(), llvm::MipsRegisterInfo::canRealignStack(), llvm::X86RegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), CC_Lanai32_VarArg(), changeFCMPPredToAArch64CC(), checkRegOnlyPHIInputs(), llvm::X86InstrInfo::classifyLEAReg(), llvm::SplitAnalysis::clear(), llvm::Combiner::combineMachineInstrs(), llvm::HexagonBlockRanges::computeDeadMap(), llvm::computeLiveIns(), computeLiveOuts(), computeWeight(), llvm::InstructionSelector::constrainOperandRegToRegClass(), llvm::constrainSelectedInstRegOperands(), llvm::SIInstrInfo::convertNonUniformIfRegion(), llvm::SIInstrInfo::convertNonUniformLoopRegion(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::SystemZInstrInfo::convertToThreeAddress(), llvm::X86InstrInfo::convertToThreeAddress(), llvm::WebAssemblyInstrInfo::copyPhysReg(), llvm::NVPTXInstrInfo::copyPhysReg(), llvm::createHexagonHardwareLoops(), createLaneMaskReg(), llvm::AMDGPUTargetLowering::CreateLiveInRegister(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::createRegUsageInfoCollector(), llvm::createSIFixWWMLivenessPass(), llvm::createSIWholeQuadModePass(), createSwiftErrorEntriesInEntryBlock(), createVirtualRegs(), llvm::HexagonInstrInfo::createVR(), llvm::createX86FixupSetCC(), llvm::createX86OptimizeLEAs(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), doCandidateWalk(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitClzero(), llvm::PPCTargetLowering::emitEHSjLjLongJmp(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), emitIndirectDst(), emitIndirectSrc(), llvm::R600TargetLowering::EmitInstrWithCustomInserter(), llvm::SITargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostSt(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::MipsSEFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitThumbRegPlusImmInReg(), emitXBegin(), EnsureStackAlignment(), llvm::MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval(), llvm::HexagonInstrInfo::expandPostRAPseudo(), llvm::HexagonBlockRanges::expandToSubRegs(), extractRsrcPtr(), llvm::SITargetLowering::finalizeLowering(), llvm::TargetLoweringBase::finalizeLowering(), llvm::findPHICopyInsertPoint(), findScratchNonCalleeSaveRegister(), findSingleRegDef(), findStartOfTree(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), foldPatchpoint(), forceReg(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::TargetInstrInfo::genAlternativeCodeSequence(), llvm::SIInstrInfo::getAddNoCarry(), getAllSGPRs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::FunctionLoweringInfo::getCatchPadExceptionPointerVReg(), getConstant(), llvm::ARMTargetLowering::getExceptionSelectorRegister(), getFoldableImm(), getFPReg(), llvm::MipsFunctionInfo::getGlobalBaseReg(), llvm::LanaiMachineFunctionInfo::getGlobalBaseReg(), llvm::SparcInstrInfo::getGlobalBaseReg(), llvm::X86InstrInfo::getGlobalBaseReg(), llvm::R600InstrInfo::getIndirectIndexBegin(), llvm::AMDGPURegisterBankInfo::getInstrAlternativeMappings(), llvm::X86RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::AMDGPURegisterBankInfo::getInstrMapping(), llvm::X86RegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RegisterBankInfo::getInstrMappingImpl(), llvm::getLiveRegsAfter(), llvm::getLiveRegsBefore(), getLoadStoreOffsetAlign(), getMappedOp(), getMopState(), getOModValue(), llvm::PPCInstrInfo::getOperandLatency(), llvm::SIInstrInfo::getOpRegClass(), llvm::SIInstrInfo::getOpSize(), llvm::FunctionLoweringInfo::getOrCreateSwiftErrorVReg(), llvm::FunctionLoweringInfo::getOrCreateSwiftErrorVRegDefAt(), getOrExecSource(), llvm::X86GenRegisterBankInfo::getPartialMappingIdx(), llvm::MachineFrameInfo::getPristineRegs(), getPrologueDeath(), getReassignedChan(), llvm::SystemZRegisterInfo::getRegAllocationHints(), llvm::ARMBaseRegisterInfo::getRegAllocationHints(), llvm::TargetRegisterInfo::getRegAllocationHints(), getRegClassFromGRPhysReg(), GetRegistersForValue(), getRegTy(), getRetpolineSymbol(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), getSmrdOpcode(), getSubOpcode(), getTag(), llvm::BPFTargetLowering::getTargetNodeName(), getUnderlyingArgReg(), llvm::PerFunctionMIParsingState::getVRegInfo(), llvm::PerFunctionMIParsingState::getVRegInfoNamed(), llvm::VirtRegMap::grow(), HandleVRSaveUpdate(), hasAnyNonFlatUseOfReg(), HasArgumentDef(), llvm::RISCVFrameLowering::hasFP(), llvm::TargetInstrInfo::hasReassociableOperands(), llvm::TargetInstrInfo::hasReassociableSibling(), hasVGPROperands(), hasVulnerableLoad(), hoistAndMergeSGPRInits(), INITIALIZE_PASS(), INITIALIZE_PASS_END(), llvm::outliner::Candidate::initLRU(), llvm::TailDuplicator::initMF(), llvm::WebAssemblyFunctionInfo::initWARegs(), llvm::X86FrameLowering::inlineStackProbe(), llvm::SITargetLowering::insertCopiesSplitCSR(), llvm::AArch64TargetLowering::insertCopiesSplitCSR(), llvm::PPCTargetLowering::insertCopiesSplitCSR(), insertCopy(), insertDeleteInstructions(), llvm::SIInstrInfo::insertEQ(), llvm::SIInstrInfo::insertNE(), llvm::AArch64InstrInfo::insertSelect(), llvm::SystemZInstrInfo::insertSelect(), llvm::SIInstrInfo::insertSelect(), llvm::PPCInstrInfo::insertSelect(), llvm::X86InstrInfo::insertSelect(), insertUndefLaneMask(), llvm::SIInstrInfo::insertVectorSelect(), isACalleeSavedRegister(), isCallerPreservedOrConstPhysReg(), isConstant(), isCrossCopy(), llvm::SITargetLowering::isEligibleForTailCallOptimization(), isFpMulInstruction(), isImplicitOperandIn(), isInstrUniform(), llvm::X86TargetLowering::isIntDivCheap(), llvm::AArch64InstrInfo::isMBBSafeToOutlineFrom(), isNonFoldablePartialRegisterLoad(), isNopCopy(), llvm::SIInstrInfo::isOperandLegal(), isPreISelGenericFloatingPointOpcode(), llvm::X86InstrInfo::isReallyTriviallyReMaterializable(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSortedByValueNo(), isSSA(), isSupportedType(), isTerminalReg(), llvm::SITargetLowering::isTypeDesirableForOp(), llvm::SIInstrInfo::isVGPRCopy(), isVirtualRegisterOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIInstrInfo::legalizeOpWithMove(), llvm::SITargetLowering::legalizeTargetIndependentNode(), llvm::MipsSEInstrInfo::loadImmediate(), loadM0FromVGPR(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::AArch64InstrInfo::loadRegFromStackSlot(), llvm::SIInstrInfo::loadRegFromStackSlot(), loadSRsrcFromVGPR(), LoopIsOuterMostWithPredecessor(), llvm::WebAssemblyMCInstLower::Lower(), llvm::X86CallLowering::lowerCall(), llvm::ARMCallLowering::lowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), lowerCallResult(), llvm::HexagonTargetLowering::LowerCallResult(), LowerCallResult(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::X86CallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::ARMCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::HexagonTargetLowering::LowerFormalArguments(), llvm::SystemZTargetLowering::LowerFormalArguments(), llvm::SparcTargetLowering::LowerFormalArguments_32(), LowerFPToInt(), llvm::BPFTargetLowering::LowerOperation(), llvm::X86CallLowering::lowerReturn(), llvm::AMDGPUCallLowering::lowerReturn(), llvm::AArch64CallLowering::lowerReturn(), llvm::MipsCallLowering::lowerReturn(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), llvm::machineFunctionIsIllegal(), MatchingStackOffset(), matchSwap(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::SIInstrInfo::materializeImmediate(), mayTailCallThisCC(), MoveAndTeeForMultiUse(), llvm::SIInstrInfo::moveToVALU(), MustSaveLR(), needToReserveScavengingSpillSlots(), normalizePBQPSpillWeight(), optimizeCall(), llvm::AArch64InstrInfo::optimizeCondBranch(), llvm::BranchFolder::OptimizeFunction(), llvm::LanaiInstrInfo::optimizeSelect(), llvm::ARMBaseInstrInfo::optimizeSelect(), parseCond(), llvm::MIRParserImpl::parseRegisterInfo(), Passv64i1ArgInRegs(), populateCandidates(), llvm::HexagonInstrInfo::PredicateInstruction(), llvm::MIRPrinter::print(), llvm::MIPrinter::print(), llvm::MachineBasicBlock::print(), llvm::printMBBReference(), propagateLocalCopies(), propagateSwiftErrorVRegs(), readsVCCZ(), llvm::TargetInstrInfo::reassociateOps(), llvm::recomputeLivenessFlags(), removePhis(), removeRedundantBlockingStores(), llvm::PPCInstrInfo::replaceInstrWithLI(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::GCNRPTracker::reset(), llvm::GCNDownwardRPTracker::reset(), llvm::LiveRangeCalc::reset(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::SIRegisterInfo::restoreSGPR(), llvm::UnreachableBlockElimPass::run(), runOnBasicBlock(), llvm::InstructionSelect::runOnMachineFunction(), llvm::WebAssemblyAsmPrinter::runOnMachineFunction(), llvm::Legalizer::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::LiveVariables::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::scavengeFrameVirtualRegs(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FunctionLoweringInfo::set(), llvm::MachineIRBuilderBase::setMF(), llvm::CoalescerPair::setRegisters(), llvm::RegScavenger::setRegUsed(), llvm::X86MachineFunctionInfo::setRestoreBasePointer(), llvm::MIRParserImpl::setupRegisterInfo(), llvm::SIInstrInfo::shouldClusterMemOps(), shouldPreventUndefRegUpdateMemFold(), SortBlocks(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::X86FrameLowering::spillCalleeSavedRegisters(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), splitBlock(), llvm::MachineBasicBlock::SplitCriticalEdge(), splitMBB(), llvm::LiveDebugVariables::splitRegister(), llvm::CriticalAntiDepBreaker::StartBlock(), llvm::AggressiveAntiDepBreaker::StartBlock(), llvm::Thumb2InstrInfo::storeRegToStackSlot(), llvm::AArch64InstrInfo::storeRegToStackSlot(), llvm::SIInstrInfo::storeRegToStackSlot(), false::Chain::str(), subRangeLiveAt(), swapMIOperands(), tryAddToFoldList(), tryChangeVGPRtoSGPRinCopy(), llvm::tryFoldSPUpdateIntoPushPop(), unpackF64OnRV32DSoftABI(), UnpackFromArgumentSlot(), unpackFromRegLoc(), llvm::AArch64RegisterInfo::UpdateCustomCalleeSavedRegs(), updateLiveness(), updateOperand(), UpdateOperandRegClass(), updateOperandRegConstraints(), llvm::ARMBaseRegisterInfo::updateRegAllocHint(), usedAsAddr(), verify(), llvm::SIInstrInfo::verifyInstruction(), verifyLeafProcRegUse(), VisitGlobalVariableForEmission(), and llvm::VirtRegAuxInfo::weightCalcHelper().

◆ getRegInfo() [2/2]

const MachineRegisterInfo& llvm::MachineFunction::getRegInfo ( ) const
inline

Definition at line 455 of file MachineFunction.h.

◆ getSublistAccess()

static BasicBlockListType MachineFunction::* llvm::MachineFunction::getSublistAccess ( MachineBasicBlock )
inlinestatic

Support for MachineBasicBlock::getNextNode().

Definition at line 607 of file MachineFunction.h.

References addLiveIn().

◆ getSubtarget() [1/2]

const TargetSubtargetInfo& llvm::MachineFunction::getSubtarget ( ) const
inline

getSubtarget - Return the subtarget for which this machine code is being compiled.

Definition at line 443 of file MachineFunction.h.

Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::DwarfCompileUnit::addAddress(), llvm::DwarfCompileUnit::addComplexAddress(), addExclusiveRegPair(), llvm::MachineBasicBlock::addLiveIn(), addLiveInRegs(), llvm::ScheduleDAGInstrs::addPhysRegDataDeps(), addRegsToSet(), addSavedGPR(), llvm::ScheduleDAGInstrs::addVRegDefDeps(), adjCycles(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), AdjustStackOffset(), allocateRegMask(), llvm::SIMachineFunctionInfo::allocateSGPRSpillToVGPR(), allPhiOperandsUndefined(), llvm::CCState::analyzeMustTailForwardedRegisters(), AppendEndToFunction(), llvm::A57ChainingConstraint::apply(), llvm::HexagonSubtarget::CallMutation::apply(), areCandidatesToMergeOrPair(), llvm::ARMBETargetMachine::ARMBETargetMachine(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), assignCalleeSavedSpillSlots(), AssignProtectedObjSet(), llvm::DebugHandlerBase::beginFunction(), llvm::CodeViewDebug::beginFunctionImpl(), branchMaxOffsets(), buildMUBUFOffsetLoadStore(), llvm::AArch64InstrInfo::buildOutlinedFrame(), llvm::ScheduleDAGInstrs::buildSchedGraph(), llvm::calculateDbgEntityHistory(), llvm::SIInstrInfo::calculateLDSSpillAddress(), llvm::LiveRangeEdit::calculateRegClassAndHint(), callHasRegMask(), llvm::HexagonTargetLowering::CanLowerReturn(), canMoveInstsAcrossMemOp(), cannotCoexistAsymm(), llvm::HexagonPacketizerList::canPromoteToDotCur(), llvm::MipsRegisterInfo::canRealignStack(), llvm::ARMBaseRegisterInfo::canRealignStack(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::AArch64FrameLowering::canUseAsPrologue(), CC_MipsO32(), llvm::CC_X86_VectorCallAssignRegister(), checkNumAlignedDPRCS2Regs(), checkRegOnlyPHIInputs(), llvm::rdf::DataFlowGraph::DefStack::clear_block(), llvm::computeBlockSize(), computeBranchTargetAndInversion(), computeCalleeSaveRegisterPairs(), llvm::AMDGPUTargetLowering::computeKnownBitsForTargetNode(), computeLiveOuts(), llvm::MachineFrameInfo::computeMaxCallFrameSize(), llvm::TargetSchedModel::computeOutputLatency(), llvm::DwarfCompileUnit::constructLabelDIE(), llvm::MIRPrinter::convert(), llvm::MIRPrinter::convertStackObjects(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::AVRInstrInfo::copyPhysReg(), llvm::SystemZInstrInfo::copyPhysReg(), llvm::createBURRListDAGScheduler(), llvm::createDefaultScheduler(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::XCoreFunctionInfo::createEHSpillSlot(), llvm::ARM::createFastISel(), llvm::PPC::createFastISel(), llvm::XCoreFunctionInfo::createFPSpillSlot(), llvm::createHexagonHardwareLoops(), llvm::createHybridListDAGScheduler(), llvm::createILPListDAGScheduler(), llvm::MipsFunctionInfo::createISRRegFI(), llvm::createLibcall(), llvm::XCoreFunctionInfo::createLRSpillSlot(), llvm::createNVPTXPrologEpilogPass(), llvm::ARMBaseTargetMachine::createPassConfig(), llvm::R600TargetMachine::createPassConfig(), createPHIsForCMOVsInSinkBB(), createPHIsForSelects(), llvm::createR600ExpandSpecialInstrsPass(), llvm::createR600ISelDag(), llvm::FunctionLoweringInfo::CreateReg(), llvm::FunctionLoweringInfo::CreateRegs(), llvm::createRegUsageInfoCollector(), llvm::createSIDebuggerInsertNopsPass(), llvm::createSIFixWWMLivenessPass(), llvm::createSIWholeQuadModePass(), llvm::createSourceListDAGScheduler(), llvm::createSparcDelaySlotFillerPass(), llvm::createSystemZLDCleanupPass(), llvm::PPCInstrInfo::CreateTargetPostRAHazardRecognizer(), llvm::createX86FixupBWInsts(), llvm::createX86FixupLEAs(), llvm::createX86FixupSetCC(), llvm::createX86IndirectBranchTrackingPass(), llvm::createX86OptimizeLEAs(), llvm::createX86PadShortFunctions(), llvm::createX86RetpolineThunksPass(), llvm::createXCoreFrameToArgsOffsetEliminationPass(), llvm::SystemZFrameLowering::determineCalleeSaves(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::MipsSEFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::TargetOptions::DisableFramePointerElim(), doesNotGeneratecode(), llvm::AArch64FrameLowering::eliminateCallFramePseudoInstr(), llvm::MSP430FrameLowering::eliminateCallFramePseudoInstr(), llvm::WebAssemblyFrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRFrameLowering::eliminateCallFramePseudoInstr(), llvm::XCoreFrameLowering::eliminateCallFramePseudoInstr(), llvm::SIFrameLowering::eliminateCallFramePseudoInstr(), llvm::ARCFrameLowering::eliminateCallFramePseudoInstr(), llvm::BPFRegisterInfo::eliminateFrameIndex(), llvm::MSP430RegisterInfo::eliminateFrameIndex(), llvm::SparcRegisterInfo::eliminateFrameIndex(), llvm::WebAssemblyRegisterInfo::eliminateFrameIndex(), llvm::RISCVRegisterInfo::eliminateFrameIndex(), llvm::LanaiRegisterInfo::eliminateFrameIndex(), llvm::ARCRegisterInfo::eliminateFrameIndex(), llvm::XCoreRegisterInfo::eliminateFrameIndex(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::ThumbRegisterInfo::eliminateFrameIndex(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::AArch64RegisterInfo::eliminateFrameIndex(), llvm::SIRegisterInfo::eliminateFrameIndex(), llvm::PPCRegisterInfo::eliminateFrameIndex(), llvm::ARMBaseRegisterInfo::eliminateFrameIndex(), emitAlignedDPRCS2Restores(), emitAlignedDPRCS2Spills(), emitAligningInstructions(), llvm::AMDGPUAsmPrinter::EmitBasicBlockStart(), llvm::AArch64FrameLowering::emitCalleeSavedFrameMoves(), emitComments(), emitDebugLocValue(), emitDebugValueComment(), llvm::SIFrameLowering::emitEntryFunctionPrologue(), llvm::AVRFrameLowering::emitEpilogue(), llvm::SparcFrameLowering::emitEpilogue(), llvm::MSP430FrameLowering::emitEpilogue(), llvm::XCoreFrameLowering::emitEpilogue(), llvm::ARMFrameLowering::emitEpilogue(), llvm::SIFrameLowering::emitEpilogue(), llvm::AArch64FrameLowering::emitEpilogue(), llvm::ARCFrameLowering::emitEpilogue(), llvm::SystemZFrameLowering::emitEpilogue(), llvm::WebAssemblyFrameLowering::emitEpilogue(), llvm::MipsAsmPrinter::emitFrameDirective(), llvm::AMDGPUAsmPrinter::EmitFunctionBodyStart(), llvm::HexagonDAGToDAGISel::EmitFunctionEntryCode(), llvm::AMDGPUAsmPrinter::EmitFunctionEntryLabel(), EmitGCCInlineAsmStr(), llvm::AsmPrinter::emitImplicitDef(), llvm::R600AsmPrinter::EmitInstruction(), llvm::SystemZAsmPrinter::EmitInstruction(), llvm::HexagonAsmPrinter::EmitInstruction(), llvm::ARMAsmPrinter::EmitInstruction(), llvm::X86AsmPrinter::EmitInstruction(), llvm::AMDGPUAsmPrinter::EmitInstruction(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::AsmPrinter::EmitJumpTableInfo(), llvm::ARMAsmPrinter::EmitJumpTableTBInst(), emitKill(), llvm::ThumbRegisterInfo::emitLoadConstPool(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), EmitNop(), llvm::AVRFrameLowering::emitPrologue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::SparcFrameLowering::emitPrologue(), llvm::XCoreFrameLowering::emitPrologue(), llvm::MSP430FrameLowering::emitPrologue(), llvm::SIFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::HexagonFrameLowering::emitPrologue(), llvm::SystemZFrameLowering::emitPrologue(), llvm::WebAssemblyFrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::MSP430TargetLowering::EmitShiftInstr(), llvm::ARMSelectionDAGInfo::EmitSpecializedLibcall(), llvm::X86FrameLowering::emitStackProbe(), EmitTailCallStoreFPAndRetAddr(), llvm::HexagonSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::ARMSelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::AArch64SelectionDAGInfo::EmitTargetCodeForMemset(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemset(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitThumbRegPlusImmInReg(), llvm::AsmPrinter::emitXRayTable(), enableAllocFrameElim(), llvm::HexagonFrameLowering::enableCalleeSaveSkip(), llvm::PPCFrameLowering::enableShrinkWrapping(), llvm::WinException::endFunclet(), EraseBBsAndChildren(), llvm::MachineFrameInfo::estimateStackSize(), llvm::AArch64InstrInfo::expandPostRAPseudo(), expandXorFP(), llvm::LegalizerHelper::fewerElementsVector(), llvm::finalizeBundle(), findScratchNonCalleeSaveRegister(), findSingleRegDef(), findStartOfTree(), findUncondBrI(), llvm::fixStackStores(), llvm::TargetInstrInfo::foldMemoryOperand(), llvm::AArch64InstrInfo::foldMemoryOperandImpl(), llvm::SystemZInstrInfo::foldMemoryOperandImpl(), llvm::X86InstrInfo::foldMemoryOperandImpl(), fuseInstructionPair(), llvm::AArch64InstrInfo::genAlternativeCodeSequence(), llvm::AMDGPUSubtarget::get(), llvm::HexagonFrameLowering::getAlignaInstr(), llvm::PPCRegisterInfo::getBaseRegister(), llvm::RISCVRegisterInfo::getCalleeSavedRegs(), llvm::AArch64RegisterInfo::getCalleeSavedRegs(), llvm::MipsRegisterInfo::getCalleeSavedRegs(), llvm::SystemZRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegs(), llvm::X86RegisterInfo::getCalleeSavedRegs(), llvm::ARMBaseRegisterInfo::getCalleeSavedRegs(), llvm::PPCRegisterInfo::getCalleeSavedRegsViaCopy(), llvm::RISCVRegisterInfo::getCallPreservedMask(), llvm::AArch64RegisterInfo::getCallPreservedMask(), llvm::MipsRegisterInfo::getCallPreservedMask(), llvm::SystemZRegisterInfo::getCallPreservedMask(), llvm::PPCRegisterInfo::getCallPreservedMask(), llvm::X86RegisterInfo::getCallPreservedMask(), llvm::ARMBaseRegisterInfo::getCallPreservedMask(), getCmpForPseudo(), getDwarfRegNum(), llvm::getEHScopeMembership(), getElementByteSizeValue(), getEquivalentCallShort(), llvm::MachineBasicBlock::getFallThrough(), getFPMode(), getFPReg(), llvm::R600FrameLowering::getFrameIndexReference(), llvm::RISCVFrameLowering::getFrameIndexReference(), llvm::SIFrameLowering::getFrameIndexReference(), llvm::SparcFrameLowering::getFrameIndexReference(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::TargetFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferencePreferSP(), llvm::AVRRegisterInfo::getFrameRegister(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::ARMBaseRegisterInfo::getFrameRegister(), getGlobalBaseRegClass(), llvm::ARMHazardRecognizer::getHazardType(), llvm::R600InstrInfo::getIndirectIndexEnd(), llvm::X86RegisterBankInfo::getInstrAlternativeMappings(), llvm::AArch64RegisterBankInfo::getInstrAlternativeMappings(), llvm::ARMRegisterBankInfo::getInstrMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), llvm::RegisterBankInfo::getInstrMappingImpl(), getInstrVecReg(), llvm::MSP430InstrInfo::getInstSizeInBytes(), llvm::AVRInstrInfo::getInstSizeInBytes(), llvm::ThumbRegisterInfo::getLargestLegalSuperClass(), llvm::AVRRegisterInfo::getLargestLegalSuperClass(), llvm::PPCRegisterInfo::getLargestLegalSuperClass(), llvm::X86RegisterInfo::getLargestLegalSuperClass(), getLayoutSuccessorProbThreshold(), getLoadStoreOffsetAlign(), getLoadStoreOffsetSizeInBits(), getMappedOp(), getMemcpyLoadsAndStores(), getMopState(), llvm::MipsFunctionInfo::getMoveF64ViaSpillFI(), getNewValueJumpOpcode(), getOModValue(), getOpenCLAlignment(), getOrExecSource(), llvm::R600AsmPrinter::getPassName(), llvm::ThumbRegisterInfo::getPointerRegClass(), llvm::SparcRegisterInfo::getPointerRegClass(), llvm::WebAssemblyRegisterInfo::getPointerRegClass(), llvm::MipsRegisterInfo::getPointerRegClass(), llvm::X86RegisterInfo::getPointerRegClass(), llvm::MachineFrameInfo::getPristineRegs(), llvm::X86RegisterInfo::getPtrSizedFrameRegister(), getReassignedChan(), llvm::SystemZRegisterInfo::getRegAllocationHints(), GetRegistersForValue(), llvm::MipsRegisterInfo::getRegPressureLimit(), llvm::AArch64RegisterInfo::getRegPressureLimit(), llvm::ARMBaseRegisterInfo::getRegPressureLimit(), llvm::SIRegisterInfo::getRegPressureLimit(), getRegTy(), llvm::R600RegisterInfo::getReservedRegs(), llvm::SparcRegisterInfo::getReservedRegs(), llvm::HexagonRegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::SIRegisterInfo::getReservedRegs(), llvm::AArch64RegisterInfo::getReservedRegs(), llvm::PPCRegisterInfo::getReservedRegs(), llvm::X86RegisterInfo::getReservedRegs(), llvm::ARMBaseRegisterInfo::getReservedRegs(), getSchedRegions(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::ARMBaseRegisterInfo::getSjLjDispatchPreservedMask(), getSmrdOpcode(), llvm::TargetInstrInfo::getSPAdjust(), llvm::X86InstrInfo::getSPAdjust(), llvm::TargetInstrInfo::getStackSlotRange(), getSubOpcode(), llvm::SelectionDAG::getSubtarget(), llvm::AsmPrinter::getSubtargetInfo(), GetSymbolRef(), getTag(), getTargetIndexName(), llvm::BPFTargetLowering::getTargetNodeName(), llvm::MachineRegisterInfo::getTargetRegisterInfo(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::ARMBaseRegisterInfo::getThisReturnPreservedMask(), llvm::ARMBaseRegisterInfo::getTLSCallPreservedMask(), getUnderlyingObjects(), llvm::ARMInstrInfo::getUnindexedOpcode(), giveUpWithRemarks(), llvm::CCState::HandleByVal(), HandleVRSaveUpdate(), hasAnyNonFlatUseOfReg(), HasArgumentDef(), llvm::SparcFrameLowering::hasFP(), llvm::RISCVFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::ARCFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), hasRegisterDependency(), llvm::PPCRegisterInfo::hasReservedSpillSlot(), llvm::SIFrameLowering::hasSP(), hasUseAfterLoop(), hasVulnerableLoad(), llvm::HexagonAsmPrinter::HexagonProcessInstruction(), hoistAndMergeSGPRInits(), llvm::GCNMaxOccupancySchedStrategy::initialize(), llvm::PostGenericScheduler::initialize(), INITIALIZE_PASS(), INITIALIZE_PASS_END(), llvm::MIRParserImpl::initializeJumpTableInfo(), llvm::MIRParserImpl::initializeMachineFunction(), llvm::TailDuplicator::initMF(), initSlots2Values(), llvm::X86FrameLowering::inlineStackProbe(), llvm::HexagonFrameLowering::insertCFIInstructions(), insertCopy(), insertCSRRestores(), insertCSRSaves(), insertDeleteInstructions(), InsertLDR_STR(), InsertReturnAddressAuth(), InsertSEH(), insertUndefLaneMask(), llvm::Mips16RegisterInfo::intRegClass(), isACalleeSavedRegister(), llvm::PPCRegisterInfo::isCallerPreservedPhysReg(), isCompareZero(), isCopy(), isFpMulInstruction(), isHardwareLoop(), isImplicitOperandIn(), llvm::HexagonPacketizerList::isLegalToPacketizeTogether(), isLiveOut(), isMinSize(), IsMovepDestinationRegPair(), isNonFoldablePartialRegisterLoad(), isNopCopy(), IsPseudoCallIndirect(), llvm::VLIWResourceModel::isResourceAvailable(), llvm::TargetInstrInfo::isSchedulingBoundary(), llvm::SITargetLowering::isSDNodeSourceOfDivergence(), llvm::PPCInstrInfo::isSignOrZeroExtended(), isSupportedType(), isTerminalReg(), IsUnconditionalJump(), isVirtualRegisterOperand(), llvm::SIInstrInfo::legalizeOperands(), llvm::SIMachineFunctionInfo::limitOccupancy(), llvm::LiveRegMatrix::LiveRegMatrix(), llvm::X86InstrInfo::loadRegFromAddr(), lookupCandidateBaseReg(), LoopIsOuterMostWithPredecessor(), llvm::X86CallLowering::lowerCall(), llvm::ARMCallLowering::lowerCall(), llvm::AArch64CallLowering::lowerCall(), llvm::MipsCallLowering::lowerCall(), llvm::HexagonTargetLowering::LowerCall(), llvm::PPCRegisterInfo::lowerCRBitRestore(), llvm::PPCRegisterInfo::lowerCRBitSpilling(), llvm::PPCRegisterInfo::lowerCRRestore(), llvm::PPCRegisterInfo::lowerCRSpilling(), llvm::PPCRegisterInfo::lowerDynamicAlloc(), llvm::PPCRegisterInfo::lowerDynamicAreaOffset(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::SITargetLowering::LowerFormalArguments(), llvm::AMDGPUAsmPrinter::lowerOperand(), llvm::ARMCallLowering::lowerReturn(), llvm::PPCRegisterInfo::lowerVRSAVERestore(), llvm::PPCRegisterInfo::lowerVRSAVESpilling(), MachineFunction(), llvm::machineFunctionIsIllegal(), MakeM0Inst(), matchSwap(), llvm::SIRegisterInfo::materializeFrameBaseRegister(), llvm::AArch64RegisterInfo::materializeFrameBaseRegister(), llvm::PPCRegisterInfo::materializeFrameBaseRegister(), llvm::ARMBaseRegisterInfo::materializeFrameBaseRegister(), llvm::MachineInstr::mayAlias(), MoveAndTeeForMultiUse(), moveInstrOut(), needsReferenceType(), llvm::TargetRegisterInfo::needsStackRealignment(), llvm::ARMFrameLowering::noFramePointerElim(), normalizePBQPSpillWeight(), false::IntervalSorter::operator()(), optimizeCall(), parseCachePolicy(), parseCond(), llvm::MIRPrinter::print(), llvm::MIPrinter::print(), llvm::RegisterBankInfo::OperandsMapper::print(), print(), llvm::MachineBasicBlock::print(), llvm::MachineFrameInfo::print(), llvm::MachineInstr::print(), llvm::AVRAsmPrinter::PrintAsmOperand(), llvm::HexagonAsmPrinter::PrintAsmOperand(), llvm::ARMAsmPrinter::PrintAsmOperand(), llvm::AMDGPUAsmPrinter::PrintAsmOperand(), printConstant(), llvm::ARMAsmPrinter::printOperand(), llvm::GCNIterativeScheduler::printRegions(), llvm::MipsAsmPrinter::printSavedRegsBitmask(), llvm::GCNIterativeScheduler::printSchedRP(), llvm::MachineOperand::printTargetFlags(), llvm::RISCVFrameLowering::processFunctionBeforeFrameFinalized(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), llvm::XCoreFrameLowering::processFunctionBeforeFrameFinalized(), llvm::ARCFrameLowering::processFunctionBeforeFrameFinalized(), llvm::AArch64FrameLowering::processFunctionBeforeFrameFinalized(), produceCompactUnwindFrame(), propagateSwiftErrorVRegs(), readsVCCZ(), llvm::TargetInstrInfo::reassociateOps(), llvm::MachineRegisterInfo::recomputeRegClass(), removePhis(), removeRedundantBlockingStores(), ReplaceDominatedUses(), replaceFI(), ReplaceFrameIndex(), llvm::SIRegisterInfo::requiresFrameIndexReplacementScavenging(), llvm::SIRegisterInfo::reservedPrivateSegmentBufferReg(), llvm::SIRegisterInfo::reservedPrivateSegmentWaveByteOffsetReg(), llvm::R600InstrInfo::reserveIndirectRegisters(), reservePrivateMemoryRegs(), llvm::ThumbRegisterInfo::resolveFrameIndex(), llvm::SIRegisterInfo::resolveFrameIndex(), llvm::PPCRegisterInfo::resolveFrameIndex(), llvm::ARMBaseRegisterInfo::resolveFrameIndex(), llvm::AArch64FrameLowering::resolveFrameIndexReference(), llvm::ARMFrameLowering::ResolveFrameIndexReference(), llvm::ResourcePriorityQueue::ResourcePriorityQueue(), llvm::AVRFrameLowering::restoreCalleeSavedRegisters(), llvm::Thumb1FrameLowering::restoreCalleeSavedRegisters(), llvm::SystemZFrameLowering::restoreCalleeSavedRegisters(), llvm::XCoreFrameLowering::restoreCalleeSavedRegisters(), llvm::MSP430FrameLowering::restoreCalleeSavedRegisters(), llvm::AArch64FrameLowering::restoreCalleeSavedRegisters(), restoreCRs(), llvm::SIRegisterInfo::restoreSGPR(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::UnreachableBlockElimPass::run(), llvm::AVRDAGToDAGISel::runOnMachineFunction(), llvm::HexagonAsmPrinter::runOnMachineFunction(), llvm::HexagonDAGToDAGISel::runOnMachineFunction(), llvm::MipsDAGToDAGISel::runOnMachineFunction(), llvm::NVPTXDAGToDAGISel::runOnMachineFunction(), llvm::InstructionSelect::runOnMachineFunction(), llvm::WebAssemblyAsmPrinter::runOnMachineFunction(), llvm::InsertNOPLoad::runOnMachineFunction(), llvm::BreakFalseDeps::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::FixAllFDIVSQRT::runOnMachineFunction(), llvm::RegisterClassInfo::runOnMachineFunction(), llvm::ReachingDefAnalysis::runOnMachineFunction(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::LiveStacks::runOnMachineFunction(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::MachineTraceMetrics::runOnMachineFunction(), llvm::MipsAsmPrinter::runOnMachineFunction(), llvm::ExecutionDomainFix::runOnMachineFunction(), llvm::X86AsmPrinter::runOnMachineFunction(), llvm::LiveIntervals::runOnMachineFunction(), llvm::NVPTXAsmPrinter::runOnMachineFunction(), llvm::AVRDynAllocaSR::runOnMachineFunction(), llvm::Mips16RegisterInfo::saveScavengerRegister(), llvm::ThumbRegisterInfo::saveScavengerRegister(), llvm::scavengeFrameVirtualRegs(), llvm::GCNIterativeScheduler::schedule(), llvm::ScheduleDAGInstrs::ScheduleDAGInstrs(), llvm::GCNIterativeScheduler::scheduleILP(), llvm::GCNIterativeScheduler::scheduleLegacyMaxOccupancy(), llvm::GCNIterativeScheduler::scheduleMinReg(), llvm::GCNIterativeScheduler::scheduleRegion(), llvm::AVRDAGToDAGISel::SelectInlineAsmMemoryOperand(), llvm::FunctionLoweringInfo::set(), setAliasRegs(), setCallTargetReg(), llvm::MachineIRBuilderBase::setMF(), llvm::RegScavenger::setRegUsed(), llvm::X86MachineFunctionInfo::setRestoreBasePointer(), llvm::AsmPrinter::SetupMachineFunction(), llvm::DwarfDebug::shareAcrossDWOCUs(), llvm::HexagonRegisterInfo::shouldCoalesce(), llvm::SIMachineFunctionInfo::SIMachineFunctionInfo(), llvm::MachineBasicBlock::SkipPHIsAndLabels(), llvm::MachineBasicBlock::SkipPHIsLabelsAndDebug(), llvm::GCNIterativeScheduler::sortRegionsByPressure(), llvm::SparcFrameLowering::SparcFrameLowering(), llvm::AVRFrameLowering::spillCalleeSavedRegisters(), llvm::Thumb1FrameLowering::spillCalleeSavedRegisters(), llvm::SystemZFrameLowering::spillCalleeSavedRegisters(), llvm::XCoreFrameLowering::spillCalleeSavedRegisters(), llvm::MSP430FrameLowering::spillCalleeSavedRegisters(), llvm::AArch64FrameLowering::spillCalleeSavedRegisters(), llvm::SIRegisterInfo::spillSGPR(), splitBlock(), llvm::MachineBasicBlock::SplitCriticalEdge(), splitMBB(), srcMgrDiagHandler(), llvm::X86InstrInfo::storeRegToAddr(), false::Chain::str(), subRangeLiveAt(), llvm::SystemZPostRASchedStrategy::SystemZPostRASchedStrategy(), tieOpsIfNeeded(), llvm::GCNIterativeScheduler::tryMaximizeOccupancy(), tryOptimizeLEAtoMOV(), trySequenceOfOnes(), llvm::X86InstrInfo::unfoldMemoryOperand(), UpdateCPSRUse(), llvm::AArch64RegisterInfo::UpdateCustomCalleeSavedRegs(), llvm::AArch64RegisterInfo::UpdateCustomCallPreservedMask(), updateLiveIn(), UpdateOperandRegClass(), UpdatePredRedefs(), llvm::DwarfCompileUnit::updateSubprogramScopeDIE(), llvm::MachineBasicBlock::updateTerminator(), usedAsAddr(), llvm::HexagonRegisterInfo::useFPForScavengingIndex(), verify(), llvm::SIInstrInfo::verifyInstruction(), llvm::VLIWPacketizerList::VLIWPacketizerList(), llvm::VirtRegAuxInfo::weightCalcHelper(), llvm::LegalizerHelper::widenScalar(), windowsRequiresStackProbe(), llvm::WebAssemblyFrameLowering::writeSPToGlobal(), and llvm::X86CallLowering::X86CallLowering().

◆ getSubtarget() [2/2]

template<typename STC >
const STC& llvm::MachineFunction::getSubtarget ( ) const
inline

getSubtarget - This method returns a pointer to the specified type of TargetSubtargetInfo.

In debug builds, it verifies that the object being returned is of the correct type.

Definition at line 449 of file MachineFunction.h.

◆ getTarget()

const LLVMTargetMachine& llvm::MachineFunction::getTarget ( ) const
inline

getTarget - Return the target machine this machine code is compiled with

Definition at line 439 of file MachineFunction.h.

Referenced by llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::NVPTXTargetLowering::allowFMA(), llvm::NVPTXTargetLowering::allowUnsafeFPMath(), AppendEndToFunction(), AssignProtectedObjSet(), CallingConvSupported(), llvm::AArch64RegisterInfo::cannotEliminateFrame(), llvm::ARMBaseRegisterInfo::cannotEliminateFrame(), llvm::MachineBasicBlock::canSplitCriticalEdge(), llvm::X86FrameLowering::canUseLEAForSPInEpilogue(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), llvm::MipsFunctionInfo::createEhDataRegsFI(), llvm::MipsTargetLowering::createFastISel(), llvm::createRegUsageInfoCollector(), llvm::createX86RetpolineThunksPass(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::PPCFrameLowering::eliminateCallFramePseudoInstr(), llvm::AVRRegisterInfo::eliminateFrameIndex(), llvm::X86FrameLowering::emitEpilogue(), llvm::PPCFrameLowering::emitEpilogue(), llvm::NVPTXFrameLowering::emitPrologue(), llvm::ARMFrameLowering::emitPrologue(), llvm::AArch64FrameLowering::emitPrologue(), llvm::X86FrameLowering::emitPrologue(), llvm::AsmPrinter::emitStackSizeSection(), EraseBBsAndChildren(), ExpandMOVImmSExti8(), llvm::AArch64InstrInfo::expandPostRAPseudo(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::AMDGPUSubtarget::get(), llvm::HexagonFrameLowering::getAlignaInstr(), llvm::HexagonFrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::MipsRegisterInfo::getFrameRegister(), llvm::X86InstrInfo::getGlobalBaseReg(), getGlobalBaseRegClass(), llvm::AArch64InstrInfo::getInstSizeInBytes(), llvm::ARCInstrInfo::getInstSizeInBytes(), llvm::RISCVInstrInfo::getInstSizeInBytes(), llvm::MSP430InstrInfo::getInstSizeInBytes(), llvm::AVRInstrInfo::getInstSizeInBytes(), llvm::MipsInstrInfo::getInstSizeInBytes(), llvm::ARMBaseInstrInfo::getInstSizeInBytes(), llvm::SystemZInstrInfo::getInstSizeInBytes(), llvm::PPCInstrInfo::getInstSizeInBytes(), llvm::SIInstrInfo::getInstSizeInBytes(), getLayoutSuccessorProbThreshold(), getLoadStoreOffsetAlign(), llvm::PPCInstrInfo::getMachineCombinerPatterns(), getMOVL(), getOpenCLAlignment(), getRetpolineSymbol(), llvm::X86InstrInfo::getSerializableDirectMachineOperandTargetFlags(), llvm::HexagonInstrInfo::getSize(), llvm::TargetFrameLowering::getStackAlignmentSkew(), llvm::ARMInstrInfo::getUnindexedOpcode(), giveUpWithRemarks(), llvm::MipsFrameLowering::hasFP(), llvm::SparcFrameLowering::hasFP(), llvm::RISCVFrameLowering::hasFP(), llvm::SystemZFrameLowering::hasFP(), llvm::MSP430FrameLowering::hasFP(), llvm::XCoreFrameLowering::hasFP(), llvm::ARMFrameLowering::hasFP(), llvm::ARCFrameLowering::hasFP(), llvm::AArch64FrameLowering::hasFP(), llvm::HexagonFrameLowering::hasFP(), llvm::X86FrameLowering::hasFP(), hoistAndMergeSGPRInits(), llvm::X86FrameLowering::inlineStackProbe(), llvm::AArch64InstrInfo::isAssociativeAndCommutative(), llvm::X86InstrInfo::isAssociativeAndCommutative(), isCombineInstrCandidateFP(), isEFLAGSLive(), isOptNone(), isSortedByValueNo(), llvm::MipsSEInstrInfo::loadImmediate(), llvm::Thumb1InstrInfo::loadRegFromStackSlot(), llvm::Thumb2InstrInfo::loadRegFromStackSlot(), llvm::MipsCallLowering::lowerCall(), llvm::SITargetLowering::LowerCall(), llvm::MipsCallLowering::lowerFormalArguments(), LowerINTRINSIC_W_CHAIN(), MatchingStackOffset(), mayTailCallThisCC(), llvm::PPCFrameLowering::needsFP(), llvm::WebAssemblyFrameLowering::needsPrologForEH(), needsWinCFI(), llvm::MIPrinter::print(), llvm::PPCFrameLowering::processFunctionBeforeFrameFinalized(), promoteToConstantPool(), llvm::ARMAsmPrinter::runOnMachineFunction(), llvm::AsmPrinter::SetupMachineFunction(), shouldLowerMemFuncForSize(), llvm::ARMSubtarget::splitFramePushPop(), trySequenceOfOnes(), llvm::DwarfCompileUnit::updateSubprogramScopeDIE(), verify(), VisitGlobalVariableForEmission(), and X86ChooseCmpImmediateOpcode().

◆ getTypeIDFor()

unsigned MachineFunction::getTypeIDFor ( const GlobalValue TI)

Return the type id for the specified typeinfo. This is function wide.

Definition at line 769 of file MachineFunction.cpp.

References N.

Referenced by addCatchTypeInfo(), addFilterTypeInfo(), and getUnderlyingArgReg().

◆ getTypeInfos()

const std::vector<const GlobalValue *>& llvm::MachineFunction::getTypeInfos ( ) const
inline

Return a reference to the C++ typeinfo for the current function.

Definition at line 915 of file MachineFunction.h.

Referenced by llvm::EHStreamer::emitExceptionTable(), llvm::EHStreamer::emitTypeInfos(), and llvm::ARMException::endFunction().

◆ getVariableDbgInfo() [1/2]

VariableDbgInfoMapTy& llvm::MachineFunction::getVariableDbgInfo ( )
inline

Definition at line 933 of file MachineFunction.h.

Referenced by llvm::MIRPrinter::convertStackObjects(), and getStartOrEndSlot().

◆ getVariableDbgInfo() [2/2]

const VariableDbgInfoMapTy& llvm::MachineFunction::getVariableDbgInfo ( ) const
inline

Definition at line 934 of file MachineFunction.h.

◆ getWasmEHFuncInfo() [1/2]

const WasmEHFuncInfo* llvm::MachineFunction::getWasmEHFuncInfo ( ) const
inline

getWasmEHFuncInfo - Return information about how the current function uses Wasm exception handling.

Returns null for functions that don't use wasm exception handling.

Definition at line 482 of file MachineFunction.h.

Referenced by EraseBBsAndChildren(), and llvm::FunctionLoweringInfo::set().

◆ getWasmEHFuncInfo() [2/2]

WasmEHFuncInfo* llvm::MachineFunction::getWasmEHFuncInfo ( )
inline

Definition at line 483 of file MachineFunction.h.

◆ getWasmLandingPadIndex()

unsigned llvm::MachineFunction::getWasmLandingPadIndex ( const MachineBasicBlock LPad) const
inline

◆ getWinEHFuncInfo() [1/2]

const WinEHFuncInfo* llvm::MachineFunction::getWinEHFuncInfo ( ) const
inline

◆ getWinEHFuncInfo() [2/2]

WinEHFuncInfo* llvm::MachineFunction::getWinEHFuncInfo ( )
inline

Definition at line 489 of file MachineFunction.h.

◆ hasCallSiteBeginLabel()

bool llvm::MachineFunction::hasCallSiteBeginLabel ( MCSymbol BeginLabel) const
inline

Return true if the begin label has a call site number associated with it.

Definition at line 901 of file MachineFunction.h.

References llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::count().

◆ hasCallSiteLandingPad()

bool llvm::MachineFunction::hasCallSiteLandingPad ( MCSymbol Sym)
inline

Return true if the landing pad Eh symbol has an associated call site.

Definition at line 884 of file MachineFunction.h.

References llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::empty().

Referenced by llvm::ARMTargetLowering::ReplaceNodeResults().

◆ hasEHFunclets()

bool llvm::MachineFunction::hasEHFunclets ( ) const
inline

◆ hasEHScopes()

bool llvm::MachineFunction::hasEHScopes ( ) const
inline

Definition at line 806 of file MachineFunction.h.

Referenced by llvm::getEHScopeMembership().

◆ hasInlineAsm()

bool llvm::MachineFunction::hasInlineAsm ( ) const
inline

Returns true if the function contains any inline assembly.

Definition at line 516 of file MachineFunction.h.

Referenced by llvm::CodeViewDebug::beginFunctionImpl(), emitBasicBlockLoopComments(), and llvm::PPCRegisterInfo::getReservedRegs().

◆ hasWasmLandingPadIndex()

bool llvm::MachineFunction::hasWasmLandingPadIndex ( const MachineBasicBlock LPad) const
inline

◆ hasWinCFI()

bool llvm::MachineFunction::hasWinCFI ( ) const
inline

◆ insert()

void llvm::MachineFunction::insert ( iterator  MBBI,
MachineBasicBlock MBB 
)
inline

Definition at line 637 of file MachineFunction.h.

References llvm::iplist_impl< IntrusiveListT, TraitsT >::insert().

Referenced by addExclusiveRegPair(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::analyzeArguments(), ComputeCommonTailLength(), createPHIsForCMOVsInSinkBB(), llvm::createX86RetpolineThunksPass(), llvm::PPCTargetLowering::EmitAtomicBinary(), emitBlockAfter(), emitClzero(), llvm::PPCTargetLowering::emitEHSjLjSetJmp(), llvm::AArch64TargetLowering::EmitF128CSEL(), llvm::BPFTargetLowering::EmitInstrWithCustomInserter(), llvm::RISCVTargetLowering::EmitInstrWithCustomInserter(), llvm::AVRTargetLowering::EmitInstrWithCustomInserter(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MSP430TargetLowering::EmitInstrWithCustomInserter(), llvm::ARMTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitInstrWithCustomInserter(), llvm::PPCTargetLowering::EmitPartwordAtomicBinary(), emitPostSt(), llvm::MSP430TargetLowering::EmitShiftInstr(), emitXBegin(), llvm::SparcTargetLowering::expandSelectCC(), llvm::SelectionDAGBuilder::FindMergedConditions(), getRetpolineSymbol(), llvm::MipsTargetLowering::HandleByVal(), hasOneExitNode(), INITIALIZE_PASS(), llvm::X86FrameLowering::inlineStackProbe(), isFunctionEntryBlock(), isImmValidForOpcode(), isIntersect(), loadM0FromVGPR(), loadSRsrcFromVGPR(), LowerFPToInt(), makeImplicit(), packCmovGroup(), removeExternalCFGEdges(), llvm::ARMTargetLowering::ReplaceNodeResults(), split(), splitBlock(), llvm::MachineBasicBlock::SplitCriticalEdge(), llvm::SITargetLowering::splitKillBlock(), splitMBB(), toString(), trySequenceOfOnes(), and tryToElideArgumentCopy().

◆ operator=()

MachineFunction& llvm::MachineFunction::operator= ( const MachineFunction )
delete

◆ print()

void MachineFunction::print ( raw_ostream OS,
const SlotIndexes Indexes = nullptr 
) const

◆ push_back()

void llvm::MachineFunction::push_back ( MachineBasicBlock MBB)
inline

◆ push_front()

void llvm::MachineFunction::push_front ( MachineBasicBlock MBB)
inline

◆ rbegin() [1/2]

reverse_iterator llvm::MachineFunction::rbegin ( )
inline

Definition at line 623 of file MachineFunction.h.

Referenced by INITIALIZE_PASS(), and MaySpeculate().

◆ rbegin() [2/2]

const_reverse_iterator llvm::MachineFunction::rbegin ( ) const
inline

Definition at line 624 of file MachineFunction.h.

◆ remove() [1/2]

void llvm::MachineFunction::remove ( iterator  MBBI)
inline

◆ remove() [2/2]

void llvm::MachineFunction::remove ( MachineBasicBlock MBBI)
inline

◆ removeFromMBBNumbering()

void llvm::MachineFunction::removeFromMBBNumbering ( unsigned  N)
inline

removeFromMBBNumbering - Remove the specific machine basic block from our tracker, this is only really to be used by the MachineBasicBlock implementation.

Definition at line 681 of file MachineFunction.h.

References assert(), N, llvm::NotAtomic, Size, and llvm::SyncScope::System.

Referenced by llvm::printMBBReference().

◆ rend() [1/2]

reverse_iterator llvm::MachineFunction::rend ( )
inline

Definition at line 625 of file MachineFunction.h.

Referenced by INITIALIZE_PASS().

◆ rend() [2/2]

const_reverse_iterator llvm::MachineFunction::rend ( ) const
inline

Definition at line 626 of file MachineFunction.h.

◆ RenumberBlocks()

void MachineFunction::RenumberBlocks ( MachineBasicBlock MBB = nullptr)

RenumberBlocks - This discards all of the MachineBasicBlock numbers and recomputes them.

This discards all of the MachineBasicBlock numbers and recomputes them.

This guarantees that the MBB numbers are sequential, dense, and match the ordering of the blocks within the function. If a specific MachineBasicBlock is specified, only that block and those after it are renumbered.

Definition at line 281 of file MachineFunction.cpp.

References assert(), begin(), E, empty(), end(), and llvm::ilist_node_impl< OptionsT >::getIterator().

Referenced by CompareMBBNumbers(), INITIALIZE_PASS(), mergeOperations(), llvm::UnreachableBlockElimPass::run(), and SortBlocks().

◆ reset()

void llvm::MachineFunction::reset ( )
inline

Reset the instance as if it was just created.

Definition at line 399 of file MachineFunction.h.

References clear(), and llvm::cl::init().

◆ resetDelegate()

void llvm::MachineFunction::resetDelegate ( Delegate delegate)
inline

Reset the currently registered delegate - otherwise assert.

Definition at line 405 of file MachineFunction.h.

References assert().

Referenced by DILocationVerifier::~DILocationVerifier().

◆ setAlignment()

void llvm::MachineFunction::setAlignment ( unsigned  A)
inline

setAlignment - Set the alignment (log2, not bytes) of the function.

Definition at line 495 of file MachineFunction.h.

References A.

Referenced by llvm::ARCFunctionInfo::ARCFunctionInfo(), llvm::MIRParserImpl::initializeMachineFunction(), and llvm::AMDGPUAsmPrinter::runOnMachineFunction().

◆ setCallsEHReturn()

void llvm::MachineFunction::setCallsEHReturn ( bool  b)
inline

Definition at line 801 of file MachineFunction.h.

Referenced by getUnderlyingArgReg().

◆ setCallSiteBeginLabel()

void llvm::MachineFunction::setCallSiteBeginLabel ( MCSymbol BeginLabel,
unsigned  Site 
)
inline

Map the begin label for a call site.

Definition at line 889 of file MachineFunction.h.

Referenced by llvm::SelectionDAGBuilder::lowerInvokable().

◆ setCallSiteLandingPad()

void MachineFunction::setCallSiteLandingPad ( MCSymbol Sym,
ArrayRef< unsigned Sites 
)

Map the landing pad's EH symbol to the call site indexes.

Definition at line 764 of file MachineFunction.cpp.

References llvm::ArrayRef< T >::begin(), and llvm::ArrayRef< T >::end().

Referenced by mapWasmLandingPadIndex().

◆ setCallsUnwindInit()

void llvm::MachineFunction::setCallsUnwindInit ( bool  b)
inline

Definition at line 804 of file MachineFunction.h.

Referenced by getUnderlyingArgReg().

◆ setDelegate()

void llvm::MachineFunction::setDelegate ( Delegate delegate)
inline

Set the delegate.

resetDelegate must be called before attempting to set.

Definition at line 413 of file MachineFunction.h.

References assert().

Referenced by DILocationVerifier::DILocationVerifier().

◆ setExposesReturnsTwice()

void llvm::MachineFunction::setExposesReturnsTwice ( bool  B)
inline

setCallsSetJmp - Set a flag that indicates if there's a call to a "returns twice" function.

Definition at line 511 of file MachineFunction.h.

References B.

Referenced by llvm::MIRParserImpl::initializeMachineFunction().

◆ setHasEHFunclets()

void llvm::MachineFunction::setHasEHFunclets ( bool  V)
inline

Definition at line 810 of file MachineFunction.h.

Referenced by llvm::FunctionLoweringInfo::set().

◆ setHasEHScopes()

void llvm::MachineFunction::setHasEHScopes ( bool  V)
inline

Definition at line 807 of file MachineFunction.h.

Referenced by llvm::FunctionLoweringInfo::set().

◆ setHasInlineAsm()

void llvm::MachineFunction::setHasInlineAsm ( bool  B)
inline

Set a flag that indicates that the function contains inline assembly.

Definition at line 521 of file MachineFunction.h.

References B.

Referenced by llvm::SelectionDAGISel::runOnMachineFunction().

◆ setHasWinCFI()

void llvm::MachineFunction::setHasWinCFI ( bool  v)
inline

◆ setSubtarget()

void llvm::MachineFunction::setSubtarget ( const TargetSubtargetInfo ST)
inline

Definition at line 444 of file MachineFunction.h.

References llvm::ARM_MB::ST.

Referenced by llvm::MipsTargetMachine::resetSubtarget().

◆ setVariableDbgInfo()

void llvm::MachineFunction::setVariableDbgInfo ( const DILocalVariable Var,
const DIExpression Expr,
int  Slot,
const DILocation Loc 
)
inline

Collect information used to emit debugging information of a variable.

Definition at line 928 of file MachineFunction.h.

References llvm::SmallVectorImpl< T >::emplace_back().

Referenced by llvm::MIRParserImpl::parseStackObjectsDebugInfo(), and processDbgDeclares().

◆ setWasmLandingPadIndex()

void llvm::MachineFunction::setWasmLandingPadIndex ( const MachineBasicBlock LPad,
unsigned  Index 
)
inline

Map the landing pad to its index. Used for Wasm exception handling.

Definition at line 861 of file MachineFunction.h.

Referenced by mapWasmLandingPadIndex().

◆ shouldSplitStack()

bool MachineFunction::shouldSplitStack ( ) const

◆ size()

unsigned llvm::MachineFunction::size ( ) const
inline

◆ sort()

template<typename Comp >
void llvm::MachineFunction::sort ( Comp  comp)
inline

Definition at line 656 of file MachineFunction.h.

◆ splice() [1/3]

void llvm::MachineFunction::splice ( iterator  InsertPt,
iterator  MBBI 
)
inline

◆ splice() [2/3]

void llvm::MachineFunction::splice ( iterator  InsertPt,
MachineBasicBlock MBB 
)
inline

◆ splice() [3/3]

void llvm::MachineFunction::splice ( iterator  InsertPt,
iterator  MBBI,
iterator  MBBE 
)
inline

◆ tidyLandingPads()

void MachineFunction::tidyLandingPads ( DenseMap< MCSymbol *, uintptr_t > *  LPMap = nullptr,
bool  TidyIfNoBeginLabels = true 
)

◆ verify()

bool MachineFunction::verify ( Pass p = nullptr,
const char Banner = nullptr,
bool  AbortOnError = true 
) const

Run the current MachineFunction through the machine code verifier, useful for debugger use.

Returns
true if no problems were found.

Definition at line 325 of file MachineVerifier.cpp.

References llvm::LaneBitmask::any(), assert(), begin(), llvm::DenseMapBase< DenseMap< KeyT, ValueT, KeyInfoT, BucketT >, KeyT, ValueT, KeyInfoT, BucketT >::clear(), llvm::BitVector::clear(), llvm::VNInfo::def, E, empty(), end(), llvm::errs(), llvm::MachineFunctionProperties::FailedISel, front(), llvm::Pass::getAnalysisIfAvailable(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::SlotIndexes::getInstructionIndex(), llvm::SlotIndexes::getMBBEndIdx(), llvm::SlotIndexes::getMBBStartIdx(), llvm::MachineBasicBlock::getName(), getName(), llvm::MachineRegisterInfo::getNumVirtRegs(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getParent(), llvm::MachineInstr::getParent(), getProperties(), getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::TargetRegisterInfo::getReservedRegs(), llvm::MachineRegisterInfo::getReservedRegs(), getSubtarget(), getTarget(), llvm::SlotIndexes::hasIndex(), llvm::MachineFunctionProperties::hasProperty(), I, llvm::VNInfo::id, llvm::SlotIndex::isValid(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::SlotIndexes::MBBIndexBegin(), llvm::SlotIndexes::MBBIndexEnd(), MI, llvm::MachineFunctionProperties::NoVRegs, llvm::MachineBasicBlock::pred_begin(), llvm::MachineBasicBlock::pred_end(), llvm::MachineBasicBlock::pred_size(), llvm::MachineOperand::print(), llvm::LiveIntervals::print(), print(), llvm::MachineInstr::print(), llvm::PrintLaneMask(), llvm::printMBBReference(), llvm::printReg(), llvm::printRegUnit(), llvm::MachineFunctionProperties::RegBankSelected, llvm::report_fatal_error(), llvm::MachineRegisterInfo::reservedRegsFrozen(), llvm::MachineFunctionProperties::Selected, llvm::MachineBasicBlock::succ_begin(), llvm::MachineBasicBlock::succ_end(), llvm::MachineBasicBlock::succ_size(), verify, and llvm::MachineRegisterInfo::verifyUseLists().

Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::X86FrameLowering::adjustForSegmentedStacks(), llvm::RegScavenger::forward(), hasVulnerableLoad(), llvm::MIRParserImpl::initializeMachineFunction(), isTerminalReg(), and verifyLeafProcRegUse().

◆ viewCFG()

void MachineFunction::viewCFG ( ) const

viewCFG - This function is meant for use from the debugger.

You can just say 'call F->viewCFG()' and a ghostview window should pop up from the program, displaying the CFG of the current function with the code for each basic block inside. This depends on there being a 'dot' and 'gv' program in your path.

Definition at line 540 of file MachineFunction.cpp.

References llvm::errs(), getName(), and ViewGraph().

◆ viewCFGOnly()

void MachineFunction::viewCFGOnly ( ) const

viewCFGOnly - This function is meant for use from the debugger.

It works just like viewCFG, but it does not include the contents of basic blocks into the nodes, just the label. If you are only interested in the CFG this can make the graph smaller.

Definition at line 550 of file MachineFunction.cpp.

References llvm::errs(), getName(), and ViewGraph().

Friends And Related Function Documentation

◆ ilist_traits< MachineInstr >

friend struct ilist_traits< MachineInstr >
friend

Definition at line 385 of file MachineFunction.h.

Member Data Documentation

◆ VariableDbgInfos

VariableDbgInfoMapTy llvm::MachineFunction::VariableDbgInfos

Definition at line 389 of file MachineFunction.h.

Referenced by ~MachineFunction().


The documentation for this class was generated from the following files: