class MachineFunction
Declaration
class MachineFunction { /* full declaration omitted */ };
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:257
Member Variables
- private llvm::Function& F
- private const llvm::LLVMTargetMachine& Target
- private const llvm::TargetSubtargetInfo* STI
- private llvm::MCContext& Ctx
- private llvm::MachineModuleInfo& MMI
- private llvm::MachineRegisterInfo* RegInfo
- private llvm::MachineFunctionInfo* MFInfo
- private llvm::MachineFrameInfo* FrameInfo
- private llvm::MachineConstantPool* ConstantPool
- private llvm::MachineJumpTableInfo* JumpTableInfo
- private llvm::MCSection* Section = nullptr
- private llvm::WasmEHFuncInfo* WasmEHInfo = nullptr
- private llvm::WinEHFuncInfo* WinEHInfo = nullptr
- private std::vector<MachineBasicBlock*> MBBNumbering
- private llvm::BumpPtrAllocator Allocator
- private Recycler<llvm::MachineInstr> InstructionRecycler
- private ArrayRecycler<llvm::MachineOperand> OperandRecycler
- private Recycler<llvm::MachineBasicBlock> BasicBlockRecycler
- private llvm::MachineFunction::BasicBlockListType BasicBlocks
- private unsigned int FunctionNumber
- FunctionNumber - This provides a unique ID for each function emitted in this translation unit.
- private llvm::Align Alignment
- Alignment - The alignment of the function.
- private bool ExposesReturnsTwice = false
- ExposesReturnsTwice - True if the function calls setjmp or related functions with attribute "returns twice", but doesn't have the attribute itself. This is used to limit optimizations which cannot reason about the control flow of such functions.
- private bool HasInlineAsm = false
- True if the function includes any inline assembly.
- private bool HasWinCFI = false
- True if any WinCFI instruction have been emitted in this function.
- private llvm::MachineFunctionProperties Properties
- Current high-level properties of the IR of the function (e.g. is in SSA form or whether registers have been allocated)
- private std::unique_ptr<PseudoSourceValueManager> PSVManager
- private std::vector<MCCFIInstruction> FrameInstructions
- List of moves done by a function's prolog. Used to construct frame maps by debug and exception handling consumers.
- private std::vector<MCSymbol*> LongjmpTargets
- List of basic blocks immediately following calls to _setjmp. Used to construct a table of valid longjmp targets for Windows Control Flow Guard.
- private std::vector<MCSymbol*> CatchretTargets
- List of basic blocks that are the target of catchrets. Used to construct a table of valid targets for Windows EHCont Guard.
- private std::vector<LandingPadInfo> LandingPads
- List of LandingPadInfo describing the landing pad information.
- private DenseMap<llvm::MCSymbol*, SmallVector<unsigned int, 4>> LPadToCallSiteMap
- Map a landing pad's EH symbol to the call site indexes.
- private DenseMap<const llvm::MachineBasicBlock*, unsigned int> WasmLPadToIndexMap
- Map a landing pad to its index.
- private DenseMap<llvm::MCSymbol*, unsigned int> CallSiteMap
- Map of invoke call site index values to associated begin EH_LABEL.
- private std::vector<std::pair<MCSymbol*, MDNode*>> CodeViewAnnotations
- CodeView label annotations.
- private bool CallsEHReturn = false
- private bool CallsUnwindInit = false
- private bool HasEHCatchret = false
- private bool HasEHScopes = false
- private bool HasEHFunclets = false
- private llvm::BasicBlockSection BBSectionsType = BasicBlockSection::None
- Section Type for basic blocks, only relevant with basic block sections.
- private std::vector<const GlobalValue*> TypeInfos
- List of C++ TypeInfo used.
- private std::vector<unsigned int> FilterIds
- List of typeids encoding filters used.
- private std::vector<unsigned int> FilterEnds
- List of the indices in FilterIds corresponding to filter terminators.
- private llvm::EHPersonality PersonalityTypeCache = EHPersonality::Unknown
- private llvm::MachineFunction::Delegate* TheDelegate = nullptr
- private llvm::GISelChangeObserver* Observer = nullptr
- private llvm::MachineFunction::CallSiteInfoMap CallSitesInfo
- Map a call instruction to call site arguments forwarding info.
- public llvm::MachineFunction::VariableDbgInfoMapTy VariableDbgInfos
- public unsigned int DebugInstrNumberingCount = 0
- A count of how many instructions in the function have had numbers assigned to them. Used for debug value tracking, to determine the next instruction number.
- public SmallVector< llvm::MachineFunction::DebugSubstitution, 8> DebugValueSubstitutions
- Debug value substitutions: a collection of DebugSubstitution objects, recording changes in where a value is defined. For example, when one instruction is substituted for another. Keeping a record allows recovery of variable locations after compilation finishes.
- public DenseMap< unsigned int, llvm::MachineFunction::DebugPHIRegallocPos> DebugPHIPositions
- Map of debug instruction numbers to the position of their PHI instructions during register allocation. See DebugPHIRegallocPos.
- public static const unsigned int DebugOperandMemNumber
- A reserved operand number representing the instructions memory operand, for instructions that have a stack spill fused into them.
Method Overview
- public llvm::MachineInstr * CloneMachineInstr(const llvm::MachineInstr * Orig)
- public llvm::MachineBasicBlock * CreateMachineBasicBlock(const llvm::BasicBlock * bb = nullptr)
- public llvm::MachineInstr * CreateMachineInstr(const llvm::MCInstrDesc & MCID, llvm::DebugLoc DL, bool NoImplicit = false)
- public MachineFunction(const llvm::MachineFunction &)
- public MachineFunction(llvm::Function & F, const llvm::LLVMTargetMachine & Target, const llvm::TargetSubtargetInfo & STI, unsigned int FunctionNum, llvm::MachineModuleInfo & MMI)
- public void RenumberBlocks(llvm::MachineBasicBlock * MBBFrom = nullptr)
- public void addCallArgsForwardingRegs(const llvm::MachineInstr * CallI, llvm::MachineFunction::CallSiteInfoImpl && CallInfo)
- public void addCatchTypeInfo(llvm::MachineBasicBlock * LandingPad, ArrayRef<const llvm::GlobalValue *> TyInfo)
- public void addCatchretTarget(llvm::MCSymbol * Target)
- public void addCleanup(llvm::MachineBasicBlock * LandingPad)
- public void addCodeViewAnnotation(llvm::MCSymbol * Label, llvm::MDNode * MD)
- public void addFilterTypeInfo(llvm::MachineBasicBlock * LandingPad, ArrayRef<const llvm::GlobalValue *> TyInfo)
- public unsigned int addFrameInst(const llvm::MCCFIInstruction & Inst)
- public void addInvoke(llvm::MachineBasicBlock * LandingPad, llvm::MCSymbol * BeginLabel, llvm::MCSymbol * EndLabel)
- public llvm::MCSymbol * addLandingPad(llvm::MachineBasicBlock * LandingPad)
- public llvm::Register addLiveIn(llvm::MCRegister PReg, const llvm::TargetRegisterClass * RC)
- public void addLongjmpTarget(llvm::MCSymbol * Target)
- public unsigned int addToMBBNumbering(llvm::MachineBasicBlock * MBB)
- public llvm::MachineOperand * allocateOperandArray(llvm::MachineFunction::OperandCapacity Cap)
- public uint32_t * allocateRegMask()
- public ArrayRef<int> allocateShuffleMask(ArrayRef<int> Mask)
- public void assignBeginEndSections()
- public llvm::MachineBasicBlock & back()
- public const llvm::MachineBasicBlock & back() const
- public llvm::MachineFunction::iterator begin()
- public llvm::MachineFunction::const_iterator begin() const
- public bool callsEHReturn() const
- public bool callsUnwindInit() const
- private void clear()
- public template <typename Ty>Ty * cloneInfo(const Ty & Old)
- public llvm::MachineFunctionInfo * cloneInfoFrom(const llvm::MachineFunction & OrigMF, const DenseMap<llvm::MachineBasicBlock *, llvm::MachineBasicBlock *> & Src2DstMBB)
- public llvm::MachineInstr & cloneMachineInstrBundle(llvm::MachineBasicBlock & MBB, MachineBasicBlock::iterator InsertBefore, const llvm::MachineInstr & Orig)
- public void copyCallSiteInfo(const llvm::MachineInstr * Old, const llvm::MachineInstr * New)
- public const char * createExternalSymbolName(llvm::StringRef Name)
- public MachineInstr::ExtraInfo * createMIExtraInfo(ArrayRef<llvm::MachineMemOperand *> MMOs, llvm::MCSymbol * PreInstrSymbol = nullptr, llvm::MCSymbol * PostInstrSymbol = nullptr, llvm::MDNode * HeapAllocMarker = nullptr)
- public void deallocateOperandArray(llvm::MachineFunction::OperandCapacity Cap, llvm::MachineOperand * Array)
- public void deleteMachineBasicBlock(llvm::MachineBasicBlock * MBB)
- public void deleteMachineInstr(llvm::MachineInstr * MI)
- public void dump() const
- public bool empty() const
- public llvm::MachineFunction::const_iterator end() const
- public llvm::MachineFunction::iterator end()
- public void ensureAlignment(llvm::Align A)
- public void erase(llvm::MachineFunction::iterator MBBI)
- public void erase(llvm::MachineBasicBlock * MBBI)
- public void eraseCallSiteInfo(const llvm::MachineInstr * MI)
- public bool exposesReturnsTwice() const
- public void finalizeDebugInstrRefs()
- public const llvm::MachineBasicBlock & front() const
- public llvm::MachineBasicBlock & front()
- public llvm::Align getAlignment() const
- public llvm::MachineBasicBlock * getBlockNumbered(unsigned int N) const
- public unsigned int getCallSiteBeginLabel(llvm::MCSymbol * BeginLabel) const
- private CallSiteInfoMap::iterator getCallSiteInfo(const llvm::MachineInstr * MI)
- public SmallVectorImpl<unsigned int> & getCallSiteLandingPad(llvm::MCSymbol * Sym)
- public const llvm::MachineFunction::CallSiteInfoMap & getCallSitesInfo() const
- public const std::vector<MCSymbol *> & getCatchretTargets() const
- public ArrayRef<std::pair<MCSymbol *, MDNode *>> getCodeViewAnnotations() const
- public const llvm::MachineConstantPool * getConstantPool() const
- public llvm::MachineConstantPool * getConstantPool()
- public llvm::MCContext & getContext() const
- public const llvm::DataLayout & getDataLayout() const
- public llvm::DenormalMode getDenormalMode(const llvm::fltSemantics & FPType) const
- public int getFilterIDFor(std::vector<unsigned int> & TyIds)
- public const std::vector<unsigned int> & getFilterIds() const
- public llvm::MachineFrameInfo & getFrameInfo()
- public const llvm::MachineFrameInfo & getFrameInfo() const
- public const std::vector<MCCFIInstruction> & getFrameInstructions() const
- public llvm::Function & getFunction()
- public const llvm::Function & getFunction() const
- public unsigned int getFunctionNumber() const
- public template <typename Ty>const Ty * getInfo() const
- public template <typename Ty>Ty * getInfo()
- public unsigned int getInstructionCount() const
- public llvm::MCSymbol * getJTISymbol(unsigned int JTI, llvm::MCContext & Ctx, bool isLinkerPrivate = false) const
- public const llvm::MachineJumpTableInfo * getJumpTableInfo() const
- public llvm::MachineJumpTableInfo * getJumpTableInfo()
- public const std::vector<LandingPadInfo> & getLandingPads() const
- public const std::vector<MCSymbol *> & getLongjmpTargets() const
- public llvm::MachineModuleInfo & getMMI() const
- public llvm::MachineMemOperand * getMachineMemOperand(const llvm::MachineMemOperand * MMO, const llvm::MachinePointerInfo & PtrInfo, llvm::LLT Ty)
- public llvm::MachineMemOperand * getMachineMemOperand(llvm::MachinePointerInfo PtrInfo, MachineMemOperand::Flags f, uint64_t s, llvm::Align base_alignment, const llvm::AAMDNodes & AAInfo = llvm::AAMDNodes(), const llvm::MDNode * Ranges = nullptr, SyncScope::ID SSID = SyncScope::System, llvm::AtomicOrdering Ordering = AtomicOrdering::NotAtomic, llvm::AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic)
- public llvm::MachineMemOperand * getMachineMemOperand(llvm::MachinePointerInfo PtrInfo, MachineMemOperand::Flags f, llvm::LLT MemTy, llvm::Align base_alignment, const llvm::AAMDNodes & AAInfo = llvm::AAMDNodes(), const llvm::MDNode * Ranges = nullptr, SyncScope::ID SSID = SyncScope::System, llvm::AtomicOrdering Ordering = AtomicOrdering::NotAtomic, llvm::AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic)
- public llvm::MachineMemOperand * getMachineMemOperand(const llvm::MachineMemOperand * MMO, int64_t Offset, llvm::LLT Ty)
- public llvm::MachineMemOperand * getMachineMemOperand(const llvm::MachineMemOperand * MMO, MachineMemOperand::Flags Flags)
- public llvm::MachineMemOperand * getMachineMemOperand(const llvm::MachineMemOperand * MMO, int64_t Offset, uint64_t Size)
- public llvm::MachineMemOperand * getMachineMemOperand(const llvm::MachineMemOperand * MMO, const llvm::AAMDNodes & AAInfo)
- public llvm::MachineMemOperand * getMachineMemOperand(const llvm::MachineMemOperand * MMO, const llvm::MachinePointerInfo & PtrInfo, uint64_t Size)
- public llvm::StringRef getName() const
- public unsigned int getNewDebugInstrNum()
- public unsigned int getNumBlockIDs() const
- public llvm::GISelChangeObserver * getObserver() const
- public llvm::MachineJumpTableInfo * getOrCreateJumpTableInfo(unsigned int JTEntryKind)
- public llvm::LandingPadInfo & getOrCreateLandingPadInfo(llvm::MachineBasicBlock * LandingPad)
- public llvm::MCSymbol * getPICBaseSymbol() const
- public llvm::PseudoSourceValueManager & getPSVManager() const
- public const llvm::MachineFunctionProperties & getProperties() const
- public llvm::MachineFunctionProperties & getProperties()
- public const llvm::MachineRegisterInfo & getRegInfo() const
- public llvm::MachineRegisterInfo & getRegInfo()
- public llvm::MCSection * getSection() const
- public static llvm::MachineFunction::BasicBlockListType llvm::MachineFunction::* getSublistAccess(llvm::MachineBasicBlock *)
- public const llvm::TargetSubtargetInfo & getSubtarget() const
- public template <typename STC>const STC & getSubtarget() const
- public const llvm::LLVMTargetMachine & getTarget() const
- public unsigned int getTypeIDFor(const llvm::GlobalValue * TI)
- public const std::vector<const GlobalValue *> & getTypeInfos() const
- public const llvm::MachineFunction::VariableDbgInfoMapTy & getVariableDbgInfo() const
- public llvm::MachineFunction::VariableDbgInfoMapTy & getVariableDbgInfo()
- public const llvm::WasmEHFuncInfo * getWasmEHFuncInfo() const
- public llvm::WasmEHFuncInfo * getWasmEHFuncInfo()
- public unsigned int getWasmLandingPadIndex(const llvm::MachineBasicBlock * LPad) const
- public const llvm::WinEHFuncInfo * getWinEHFuncInfo() const
- public llvm::WinEHFuncInfo * getWinEHFuncInfo()
- private void handleInsertion(llvm::MachineInstr & MI)
- private void handleRemoval(llvm::MachineInstr & MI)
- public bool hasAnyCallSiteLabel() const
- public bool hasAnyCallSiteLandingPad() const
- public bool hasAnyWasmLandingPadIndex() const
- public bool hasBBLabels() const
- public bool hasBBSections() const
- public bool hasCallSiteBeginLabel(llvm::MCSymbol * BeginLabel) const
- public bool hasCallSiteLandingPad(llvm::MCSymbol * Sym)
- public bool hasEHCatchret() const
- public bool hasEHFunclets() const
- public bool hasEHScopes() const
- public bool hasInlineAsm() const
- public bool hasWasmLandingPadIndex(const llvm::MachineBasicBlock * LPad) const
- public bool hasWinCFI() const
- private void init()
- public void insert(llvm::MachineFunction::iterator MBBI, llvm::MachineBasicBlock * MBB)
- public void makeDebugValueSubstitution(llvm::MachineFunction::DebugInstrOperandPair, llvm::MachineFunction::DebugInstrOperandPair, unsigned int SubReg = 0)
- public void moveCallSiteInfo(const llvm::MachineInstr * Old, const llvm::MachineInstr * New)
- public bool needsFrameMoves() const
- public void print(llvm::raw_ostream & OS, const llvm::SlotIndexes * = nullptr) const
- public void push_back(llvm::MachineBasicBlock * MBB)
- public void push_front(llvm::MachineBasicBlock * MBB)
- public llvm::MachineFunction::reverse_iterator rbegin()
- public llvm::MachineFunction::const_reverse_iterator rbegin() const
- public void remove(llvm::MachineBasicBlock * MBBI)
- public void remove(llvm::MachineFunction::iterator MBBI)
- public void removeFromMBBNumbering(unsigned int N)
- public llvm::MachineFunction::reverse_iterator rend()
- public llvm::MachineFunction::const_reverse_iterator rend() const
- public void reset()
- public void resetDelegate(llvm::MachineFunction::Delegate * delegate)
- public llvm::MachineFunction::DebugInstrOperandPair salvageCopySSA(llvm::MachineInstr & MI, DenseMap<llvm::Register, llvm::MachineFunction::DebugInstrOperandPair> & DbgPHICache)
- public llvm::MachineFunction::DebugInstrOperandPair salvageCopySSAImpl(llvm::MachineInstr & MI)
- public void setAlignment(llvm::Align A)
- public void setBBSectionsType(llvm::BasicBlockSection V)
- public void setCallSiteBeginLabel(llvm::MCSymbol * BeginLabel, unsigned int Site)
- public void setCallSiteLandingPad(llvm::MCSymbol * Sym, ArrayRef<unsigned int> Sites)
- public void setCallsEHReturn(bool b)
- public void setCallsUnwindInit(bool b)
- public void setDebugInstrNumberingCount(unsigned int Num)
- public void setDelegate(llvm::MachineFunction::Delegate * delegate)
- public void setExposesReturnsTwice(bool B)
- public void setHasEHCatchret(bool V)
- public void setHasEHFunclets(bool V)
- public void setHasEHScopes(bool V)
- public void setHasInlineAsm(bool B)
- public void setHasWinCFI(bool v)
- public void setObserver(llvm::GISelChangeObserver * O)
- public void setSection(llvm::MCSection * S)
- public void setVariableDbgInfo(const llvm::DILocalVariable * Var, const llvm::DIExpression * Expr, int Slot, const llvm::DILocation * Loc)
- public void setWasmLandingPadIndex(const llvm::MachineBasicBlock * LPad, unsigned int Index)
- public bool shouldSplitStack() const
- public unsigned int size() const
- public template <typename Comp>void sort(Comp comp)
- public void splice(llvm::MachineFunction::iterator InsertPt, llvm::MachineFunction::iterator MBBI)
- public void splice(llvm::MachineFunction::iterator InsertPt, llvm::MachineBasicBlock * MBB)
- public void splice(llvm::MachineFunction::iterator InsertPt, llvm::MachineFunction::iterator MBBI, llvm::MachineFunction::iterator MBBE)
- public void substituteDebugValuesForInst(const llvm::MachineInstr & Old, llvm::MachineInstr & New, unsigned int MaxOperand = (2147483647 * 2U + 1U))
- public void tidyLandingPads(DenseMap<llvm::MCSymbol *, uintptr_t> * LPMap = nullptr, bool TidyIfNoBeginLabels = true)
- public bool useDebugInstrRef() const
- public bool verify(llvm::Pass * p = nullptr, const char * Banner = nullptr, bool AbortOnError = true) const
- public void viewCFG() const
- public void viewCFGOnly() const
- public ~MachineFunction()
Methods
¶llvm::MachineInstr* CloneMachineInstr(
const llvm::MachineInstr* Orig)
llvm::MachineInstr* CloneMachineInstr(
const llvm::MachineInstr* Orig)
Description
Create a new MachineInstr which is a copy of \p Orig, 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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:933
Parameters
- const llvm::MachineInstr* Orig
¶llvm::MachineBasicBlock* CreateMachineBasicBlock(
const llvm::BasicBlock* bb = nullptr)
llvm::MachineBasicBlock* CreateMachineBasicBlock(
const llvm::BasicBlock* bb = nullptr)
Description
CreateMachineBasicBlock - Allocate a new MachineBasicBlock. Use this instead of `new MachineBasicBlock'.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:950
Parameters
- const llvm::BasicBlock* bb = nullptr
¶llvm::MachineInstr* CreateMachineInstr(
const llvm::MCInstrDesc& MCID,
llvm::DebugLoc DL,
bool NoImplicit = false)
llvm::MachineInstr* CreateMachineInstr(
const llvm::MCInstrDesc& MCID,
llvm::DebugLoc DL,
bool NoImplicit = false)
Description
CreateMachineInstr - Allocate a new MachineInstr. Use this instead of `new MachineInstr'.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:923
Parameters
- const llvm::MCInstrDesc& MCID
- llvm::DebugLoc DL
- bool NoImplicit = false
¶MachineFunction(const llvm::MachineFunction&)
MachineFunction(const llvm::MachineFunction&)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:576
Parameters
- const llvm::MachineFunction&
¶MachineFunction(
llvm::Function& F,
const llvm::LLVMTargetMachine& Target,
const llvm::TargetSubtargetInfo& STI,
unsigned int FunctionNum,
llvm::MachineModuleInfo& MMI)
MachineFunction(
llvm::Function& F,
const llvm::LLVMTargetMachine& Target,
const llvm::TargetSubtargetInfo& STI,
unsigned int FunctionNum,
llvm::MachineModuleInfo& MMI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:573
Parameters
- llvm::Function& F
- const llvm::LLVMTargetMachine& Target
- const llvm::TargetSubtargetInfo& STI
- unsigned int FunctionNum
- llvm::MachineModuleInfo& MMI
¶void RenumberBlocks(
llvm::MachineBasicBlock* MBBFrom = nullptr)
void RenumberBlocks(
llvm::MachineBasicBlock* MBBFrom = nullptr)
Description
RenumberBlocks - 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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:805
Parameters
- llvm::MachineBasicBlock* MBBFrom = nullptr
¶void addCallArgsForwardingRegs(
const llvm::MachineInstr* CallI,
llvm::MachineFunction::CallSiteInfoImpl&&
CallInfo)
void addCallArgsForwardingRegs(
const llvm::MachineInstr* CallI,
llvm::MachineFunction::CallSiteInfoImpl&&
CallInfo)
Description
Start tracking the arguments passed to the call \p CallI.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1235
Parameters
- const llvm::MachineInstr* CallI
- llvm::MachineFunction::CallSiteInfoImpl&& CallInfo
¶void addCatchTypeInfo(
llvm::MachineBasicBlock* LandingPad,
ArrayRef<const llvm::GlobalValue*> TyInfo)
void addCatchTypeInfo(
llvm::MachineBasicBlock* LandingPad,
ArrayRef<const llvm::GlobalValue*> TyInfo)
Description
Provide the catch typeinfo for a landing pad.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1124
Parameters
- llvm::MachineBasicBlock* LandingPad
- ArrayRef<const llvm::GlobalValue*> TyInfo
¶void addCatchretTarget(llvm::MCSymbol* Target)
void addCatchretTarget(llvm::MCSymbol* Target)
Description
Add the specified symbol to the list of valid catchret targets for Windows EHCont Guard.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1079
Parameters
- llvm::MCSymbol* Target
¶void addCleanup(
llvm::MachineBasicBlock* LandingPad)
void addCleanup(
llvm::MachineBasicBlock* LandingPad)
Description
Add a cleanup action for a landing pad.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1132
Parameters
- llvm::MachineBasicBlock* LandingPad
¶void addCodeViewAnnotation(llvm::MCSymbol* Label,
llvm::MDNode* MD)
void addCodeViewAnnotation(llvm::MCSymbol* Label,
llvm::MDNode* MD)
Description
Record annotations associated with a particular label.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1202
Parameters
- llvm::MCSymbol* Label
- llvm::MDNode* MD
¶void addFilterTypeInfo(
llvm::MachineBasicBlock* LandingPad,
ArrayRef<const llvm::GlobalValue*> TyInfo)
void addFilterTypeInfo(
llvm::MachineBasicBlock* LandingPad,
ArrayRef<const llvm::GlobalValue*> TyInfo)
Description
Provide the filter typeinfo for a landing pad.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1128
Parameters
- llvm::MachineBasicBlock* LandingPad
- ArrayRef<const llvm::GlobalValue*> TyInfo
¶unsigned int addFrameInst(
const llvm::MCCFIInstruction& Inst)
unsigned int addFrameInst(
const llvm::MCCFIInstruction& Inst)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1058
Parameters
- const llvm::MCCFIInstruction& Inst
¶void addInvoke(
llvm::MachineBasicBlock* LandingPad,
llvm::MCSymbol* BeginLabel,
llvm::MCSymbol* EndLabel)
void addInvoke(
llvm::MachineBasicBlock* LandingPad,
llvm::MCSymbol* BeginLabel,
llvm::MCSymbol* EndLabel)
Description
Provide the begin and end labels of an invoke style call and associate it with a try landing pad block.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1115
Parameters
- llvm::MachineBasicBlock* LandingPad
- llvm::MCSymbol* BeginLabel
- llvm::MCSymbol* EndLabel
¶llvm::MCSymbol* addLandingPad(
llvm::MachineBasicBlock* LandingPad)
llvm::MCSymbol* addLandingPad(
llvm::MachineBasicBlock* LandingPad)
Description
Add a new panding pad, and extract the exception handling information from the landingpad instruction. Returns the label ID for the landing pad entry.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1121
Parameters
- llvm::MachineBasicBlock* LandingPad
¶llvm::Register addLiveIn(
llvm::MCRegister PReg,
const llvm::TargetRegisterClass* RC)
llvm::Register addLiveIn(
llvm::MCRegister PReg,
const llvm::TargetRegisterClass* RC)
Description
addLiveIn - Add the specified physical register as a live-in value and create a corresponding virtual register for it.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:848
Parameters
- llvm::MCRegister PReg
- const llvm::TargetRegisterClass* RC
¶void addLongjmpTarget(llvm::MCSymbol* Target)
void addLongjmpTarget(llvm::MCSymbol* Target)
Description
Add the specified symbol to the list of valid longjmp targets for Windows Control Flow Guard.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1069
Parameters
- llvm::MCSymbol* Target
¶unsigned int addToMBBNumbering(
llvm::MachineBasicBlock* MBB)
unsigned int addToMBBNumbering(
llvm::MachineBasicBlock* MBB)
Description
Adds the MBB to the internal numbering. Returns the unique number assigned to the MBB.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:908
Parameters
¶llvm::MachineOperand* allocateOperandArray(
llvm::MachineFunction::OperandCapacity Cap)
llvm::MachineOperand* allocateOperandArray(
llvm::MachineFunction::OperandCapacity Cap)
Description
Allocate an array of MachineOperands. This is only intended for use by internal MachineInstr functions.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1011
Parameters
- llvm::MachineFunction::OperandCapacity Cap
¶uint32_t* allocateRegMask()
uint32_t* allocateRegMask()
Description
Allocate and initialize a register mask with @p NumRegister bits.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1023
¶ArrayRef<int> allocateShuffleMask(
ArrayRef<int> Mask)
ArrayRef<int> allocateShuffleMask(
ArrayRef<int> Mask)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1025
Parameters
- ArrayRef<int> Mask
¶void assignBeginEndSections()
void assignBeginEndSections()
Description
Assign IsBeginSection IsEndSection fields for basic blocks in this function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:649
¶llvm::MachineBasicBlock& back()
llvm::MachineBasicBlock& back()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:868
¶const llvm::MachineBasicBlock& back() const
const llvm::MachineBasicBlock& back() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:867
¶llvm::MachineFunction::iterator begin()
llvm::MachineFunction::iterator begin()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:853
¶llvm::MachineFunction::const_iterator begin()
const
llvm::MachineFunction::const_iterator begin()
const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:854
¶bool callsEHReturn() const
bool callsEHReturn() const
Description
\ {
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1086
¶bool callsUnwindInit() const
bool callsUnwindInit() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1089
¶void clear()
void clear()
Description
Clear all the members of this MachineFunction, but the ones used to initialize again the MachineFunction. More specifically, this deallocates all the dynamically allocated objects and get rid of all the XXXInfo data structure, but keep unchanged the references to Fn, Target, MMI, and FunctionNumber.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:397
¶template <typename Ty>
Ty* cloneInfo(const Ty& Old)
template <typename Ty>
Ty* cloneInfo(const Ty& Old)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:765
Templates
- Ty
Parameters
- const Ty& Old
¶llvm::MachineFunctionInfo* cloneInfoFrom(
const llvm::MachineFunction& OrigMF,
const DenseMap<llvm::MachineBasicBlock*,
llvm::MachineBasicBlock*>&
Src2DstMBB)
llvm::MachineFunctionInfo* cloneInfoFrom(
const llvm::MachineFunction& OrigMF,
const DenseMap<llvm::MachineBasicBlock*,
llvm::MachineBasicBlock*>&
Src2DstMBB)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:771
Parameters
- const llvm::MachineFunction& OrigMF
- const DenseMap<llvm::MachineBasicBlock*, llvm::MachineBasicBlock*>& Src2DstMBB
¶llvm::MachineInstr& cloneMachineInstrBundle(
llvm::MachineBasicBlock& MBB,
MachineBasicBlock::iterator InsertBefore,
const llvm::MachineInstr& Orig)
llvm::MachineInstr& cloneMachineInstrBundle(
llvm::MachineBasicBlock& MBB,
MachineBasicBlock::iterator InsertBefore,
const llvm::MachineInstr& Orig)
Description
Clones instruction or the whole instruction bundle \p Orig and insert into \p MBB before \p InsertBefore. Note: Does not perform target specific adjustments; consider using TargetInstrInfo::duplicate() intead.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:941
Parameters
- llvm::MachineBasicBlock& MBB
- MachineBasicBlock::iterator InsertBefore
- const llvm::MachineInstr& Orig
¶void copyCallSiteInfo(
const llvm::MachineInstr* Old,
const llvm::MachineInstr* New)
void copyCallSiteInfo(
const llvm::MachineInstr* Old,
const llvm::MachineInstr* New)
Description
Copy the call site info from \p Old to \ New. Its usage is when we are making a copy of the instruction that will be inserted at different point of the instruction stream.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1257
Parameters
- const llvm::MachineInstr* Old
- const llvm::MachineInstr* New
¶const char* createExternalSymbolName(
llvm::StringRef Name)
const char* createExternalSymbolName(
llvm::StringRef Name)
Description
Allocate a string and populate it with the given external symbol name.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1036
Parameters
- llvm::StringRef Name
¶MachineInstr::ExtraInfo* createMIExtraInfo(
ArrayRef<llvm::MachineMemOperand*> MMOs,
llvm::MCSymbol* PreInstrSymbol = nullptr,
llvm::MCSymbol* PostInstrSymbol = nullptr,
llvm::MDNode* HeapAllocMarker = nullptr)
MachineInstr::ExtraInfo* createMIExtraInfo(
ArrayRef<llvm::MachineMemOperand*> MMOs,
llvm::MCSymbol* PreInstrSymbol = nullptr,
llvm::MCSymbol* PostInstrSymbol = nullptr,
llvm::MDNode* HeapAllocMarker = nullptr)
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1031
Parameters
- ArrayRef<llvm::MachineMemOperand*> MMOs
- llvm::MCSymbol* PreInstrSymbol = nullptr
- llvm::MCSymbol* PostInstrSymbol = nullptr
- llvm::MDNode* HeapAllocMarker = nullptr
¶void deallocateOperandArray(
llvm::MachineFunction::OperandCapacity Cap,
llvm::MachineOperand* Array)
void deallocateOperandArray(
llvm::MachineFunction::OperandCapacity Cap,
llvm::MachineOperand* Array)
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1018
Parameters
- llvm::MachineFunction::OperandCapacity Cap
- llvm::MachineOperand* Array
¶void deleteMachineBasicBlock(
llvm::MachineBasicBlock* MBB)
void deleteMachineBasicBlock(
llvm::MachineBasicBlock* MBB)
Description
DeleteMachineBasicBlock - Delete the given MachineBasicBlock.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:953
Parameters
¶void deleteMachineInstr(llvm::MachineInstr* MI)
void deleteMachineInstr(llvm::MachineInstr* MI)
Description
DeleteMachineInstr - Delete the given MachineInstr.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:946
Parameters
¶void dump() const
void dump() const
Description
dump - Print the current MachineFunction to cerr, useful for debugger use.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:826
¶bool empty() const
bool empty() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:864
¶llvm::MachineFunction::const_iterator end() const
llvm::MachineFunction::const_iterator end() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:856
¶llvm::MachineFunction::iterator end()
llvm::MachineFunction::iterator end()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:855
¶void ensureAlignment(llvm::Align A)
void ensureAlignment(llvm::Align A)
Description
ensureAlignment - Make sure the function is at least A bytes aligned.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:710
Parameters
¶void erase(llvm::MachineFunction::iterator MBBI)
void erase(llvm::MachineFunction::iterator MBBI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:887
Parameters
¶void erase(llvm::MachineBasicBlock* MBBI)
void erase(llvm::MachineBasicBlock* MBBI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:888
Parameters
- llvm::MachineBasicBlock* MBBI
¶void eraseCallSiteInfo(
const llvm::MachineInstr* MI)
void eraseCallSiteInfo(
const llvm::MachineInstr* MI)
Description
Erase the call site info for \p MI. It is used to remove a call instruction from the instruction stream.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1253
Parameters
- const llvm::MachineInstr* MI
¶bool exposesReturnsTwice() const
bool exposesReturnsTwice() const
Description
exposesReturnsTwice - Returns true if the function calls setjmp or any other similar functions with attribute "returns twice" without having the attribute itself.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:718
¶void finalizeDebugInstrRefs()
void finalizeDebugInstrRefs()
Description
Finalise any partially emitted debug instructions. These are DBG_INSTR_REF instructions where we only knew the vreg of the value they use, not the instruction that defines that vreg. Once isel finishes, we should have enough information for every DBG_INSTR_REF to point at an instruction (or DBG_PHI).
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:563
¶const llvm::MachineBasicBlock& front() const
const llvm::MachineBasicBlock& front() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:865
¶llvm::MachineBasicBlock& front()
llvm::MachineBasicBlock& front()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:866
¶llvm::Align getAlignment() const
llvm::Align getAlignment() const
Description
getAlignment - Return the alignment of the function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:704
¶llvm::MachineBasicBlock* getBlockNumbered(
unsigned int N) const
llvm::MachineBasicBlock* getBlockNumbered(
unsigned int N) const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:788
Parameters
- unsigned int N
¶unsigned int getCallSiteBeginLabel(
llvm::MCSymbol* BeginLabel) const
unsigned int getCallSiteBeginLabel(
llvm::MCSymbol* BeginLabel) const
Description
Get the call site number for a begin label.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1190
Parameters
- llvm::MCSymbol* BeginLabel
¶CallSiteInfoMap::iterator getCallSiteInfo(
const llvm::MachineInstr* MI)
CallSiteInfoMap::iterator getCallSiteInfo(
const llvm::MachineInstr* MI)
Description
A helper function that returns call site info for a give call instruction if debug entry value support is enabled.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:452
Parameters
- const llvm::MachineInstr* MI
¶SmallVectorImpl<unsigned int>&
getCallSiteLandingPad(llvm::MCSymbol* Sym)
SmallVectorImpl<unsigned int>&
getCallSiteLandingPad(llvm::MCSymbol* Sym)
Description
Get the call site indexes for a landing pad EH symbol.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1169
Parameters
- llvm::MCSymbol* Sym
¶const llvm::MachineFunction::CallSiteInfoMap&
getCallSitesInfo() const
const llvm::MachineFunction::CallSiteInfoMap&
getCallSitesInfo() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1244
¶const std::vector<MCSymbol*>& getCatchretTargets()
const
const std::vector<MCSymbol*>& getCatchretTargets()
const
Description
Returns a reference to a list of symbols that we have catchrets. Used to construct the catchret target table used by Windows EHCont Guard.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1073
¶ArrayRef<std::pair<MCSymbol*, MDNode*>>
getCodeViewAnnotations() const
ArrayRef<std::pair<MCSymbol*, MDNode*>>
getCodeViewAnnotations() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1206
¶const llvm::MachineConstantPool* getConstantPool()
const
const llvm::MachineConstantPool* getConstantPool()
const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:689
¶llvm::MachineConstantPool* getConstantPool()
llvm::MachineConstantPool* getConstantPool()
Description
getConstantPool - Return the constant pool object for the current function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:688
¶llvm::MCContext& getContext() const
llvm::MCContext& getContext() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:608
¶const llvm::DataLayout& getDataLayout() const
const llvm::DataLayout& getDataLayout() const
Description
Return the DataLayout attached to the Module associated to this MF.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:619
¶llvm::DenormalMode getDenormalMode(
const llvm::fltSemantics& FPType) const
llvm::DenormalMode getDenormalMode(
const llvm::fltSemantics& FPType) const
Description
Returns the denormal handling type for the default rounding mode of the function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:782
Parameters
- const llvm::fltSemantics& FPType
¶int getFilterIDFor(
std::vector<unsigned int>& TyIds)
int getFilterIDFor(
std::vector<unsigned int>& TyIds)
Description
Return the id of the filter encoded by TyIds. This is function wide.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1138
Parameters
- std::vector<unsigned int>& TyIds
¶const std::vector<unsigned int>& getFilterIds()
const
const std::vector<unsigned int>& getFilterIds()
const
Description
Return a reference to the typeids encoding filters used in the current function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1217
¶llvm::MachineFrameInfo& getFrameInfo()
llvm::MachineFrameInfo& getFrameInfo()
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:672
¶const llvm::MachineFrameInfo& getFrameInfo() const
const llvm::MachineFrameInfo& getFrameInfo() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:673
¶const std::vector<MCCFIInstruction>&
getFrameInstructions() const
const std::vector<MCCFIInstruction>&
getFrameInstructions() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1054
¶llvm::Function& getFunction()
llvm::Function& getFunction()
Description
Return the LLVM function that this machine code represents
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:622
¶const llvm::Function& getFunction() const
const llvm::Function& getFunction() const
Description
Return the LLVM function that this machine code represents
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:625
¶unsigned int getFunctionNumber() const
unsigned int getFunctionNumber() const
Description
getFunctionNumber - Return a unique ID for the current function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:631
¶template <typename Ty>
const Ty* getInfo() const
template <typename Ty>
const Ty* getInfo() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:761
Templates
- Ty
¶template <typename Ty>
Ty* getInfo()
template <typename Ty>
Ty* getInfo()
Description
getInfo - Keep track of various per-function pieces of information for backends that would like to do so.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:754
Templates
- Ty
¶unsigned int getInstructionCount() const
unsigned int getInstructionCount() const
Description
Return the number of \p MachineInstrs in this \p MachineFunction.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:896
¶llvm::MCSymbol* getJTISymbol(
unsigned int JTI,
llvm::MCContext& Ctx,
bool isLinkerPrivate = false) const
llvm::MCSymbol* getJTISymbol(
unsigned int JTI,
llvm::MCContext& Ctx,
bool isLinkerPrivate = false) const
Description
getJTISymbol - 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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1044
Parameters
- unsigned int JTI
- llvm::MCContext& Ctx
- bool isLinkerPrivate = false
¶const llvm::MachineJumpTableInfo*
getJumpTableInfo() const
const llvm::MachineJumpTableInfo*
getJumpTableInfo() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:679
¶llvm::MachineJumpTableInfo* getJumpTableInfo()
llvm::MachineJumpTableInfo* getJumpTableInfo()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:680
¶const std::vector<LandingPadInfo>&
getLandingPads() const
const std::vector<LandingPadInfo>&
getLandingPads() const
Description
Return a reference to the landing pad info for the current function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1109
¶const std::vector<MCSymbol*>& getLongjmpTargets()
const
const std::vector<MCSymbol*>& getLongjmpTargets()
const
Description
Returns a reference to a list of symbols immediately following calls to _setjmp in the function. Used to construct the longjmp target table used by Windows Control Flow Guard.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1063
¶llvm::MachineModuleInfo& getMMI() const
llvm::MachineModuleInfo& getMMI() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:607
¶llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
const llvm::MachinePointerInfo& PtrInfo,
llvm::LLT Ty)
llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
const llvm::MachinePointerInfo& PtrInfo,
llvm::LLT Ty)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:991
Parameters
- const llvm::MachineMemOperand* MMO
- const llvm::MachinePointerInfo& PtrInfo
- llvm::LLT Ty
¶llvm::MachineMemOperand* getMachineMemOperand(
llvm::MachinePointerInfo PtrInfo,
MachineMemOperand::Flags f,
uint64_t s,
llvm::Align base_alignment,
const llvm::AAMDNodes& AAInfo =
llvm::AAMDNodes(),
const llvm::MDNode* Ranges = nullptr,
SyncScope::ID SSID = SyncScope::System,
llvm::AtomicOrdering Ordering =
AtomicOrdering::NotAtomic,
llvm::AtomicOrdering FailureOrdering =
AtomicOrdering::NotAtomic)
llvm::MachineMemOperand* getMachineMemOperand(
llvm::MachinePointerInfo PtrInfo,
MachineMemOperand::Flags f,
uint64_t s,
llvm::Align base_alignment,
const llvm::AAMDNodes& AAInfo =
llvm::AAMDNodes(),
const llvm::MDNode* Ranges = nullptr,
SyncScope::ID SSID = SyncScope::System,
llvm::AtomicOrdering Ordering =
AtomicOrdering::NotAtomic,
llvm::AtomicOrdering FailureOrdering =
AtomicOrdering::NotAtomic)
Description
getMachineMemOperand - Allocate a new MachineMemOperand. MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:958
Parameters
- llvm::MachinePointerInfo PtrInfo
- MachineMemOperand::Flags f
- uint64_t s
- llvm::Align base_alignment
- const llvm::AAMDNodes& AAInfo = llvm::AAMDNodes()
- const llvm::MDNode* Ranges = nullptr
- SyncScope::ID SSID = SyncScope::System
- llvm::AtomicOrdering Ordering = AtomicOrdering::NotAtomic
- llvm::AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic
¶llvm::MachineMemOperand* getMachineMemOperand(
llvm::MachinePointerInfo PtrInfo,
MachineMemOperand::Flags f,
llvm::LLT MemTy,
llvm::Align base_alignment,
const llvm::AAMDNodes& AAInfo =
llvm::AAMDNodes(),
const llvm::MDNode* Ranges = nullptr,
SyncScope::ID SSID = SyncScope::System,
llvm::AtomicOrdering Ordering =
AtomicOrdering::NotAtomic,
llvm::AtomicOrdering FailureOrdering =
AtomicOrdering::NotAtomic)
llvm::MachineMemOperand* getMachineMemOperand(
llvm::MachinePointerInfo PtrInfo,
MachineMemOperand::Flags f,
llvm::LLT MemTy,
llvm::Align base_alignment,
const llvm::AAMDNodes& AAInfo =
llvm::AAMDNodes(),
const llvm::MDNode* Ranges = nullptr,
SyncScope::ID SSID = SyncScope::System,
llvm::AtomicOrdering Ordering =
AtomicOrdering::NotAtomic,
llvm::AtomicOrdering FailureOrdering =
AtomicOrdering::NotAtomic)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:965
Parameters
- llvm::MachinePointerInfo PtrInfo
- MachineMemOperand::Flags f
- llvm::LLT MemTy
- llvm::Align base_alignment
- const llvm::AAMDNodes& AAInfo = llvm::AAMDNodes()
- const llvm::MDNode* Ranges = nullptr
- SyncScope::ID SSID = SyncScope::System
- llvm::AtomicOrdering Ordering = AtomicOrdering::NotAtomic
- llvm::AtomicOrdering FailureOrdering = AtomicOrdering::NotAtomic
¶llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
int64_t Offset,
llvm::LLT Ty)
llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
int64_t Offset,
llvm::LLT Ty)
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:976
Parameters
- const llvm::MachineMemOperand* MMO
- int64_t Offset
- llvm::LLT Ty
¶llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
MachineMemOperand::Flags Flags)
llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
MachineMemOperand::Flags Flags)
Description
Allocate a new MachineMemOperand by copying an existing one, replacing the flags. MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1004
Parameters
- const llvm::MachineMemOperand* MMO
- MachineMemOperand::Flags Flags
¶llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
int64_t Offset,
uint64_t Size)
llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
int64_t Offset,
uint64_t Size)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:978
Parameters
- const llvm::MachineMemOperand* MMO
- int64_t Offset
- uint64_t Size
¶llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
const llvm::AAMDNodes& AAInfo)
llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
const llvm::AAMDNodes& AAInfo)
Description
Allocate a new MachineMemOperand by copying an existing one, replacing only AliasAnalysis information. MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:998
Parameters
- const llvm::MachineMemOperand* MMO
- const llvm::AAMDNodes& AAInfo
¶llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
const llvm::MachinePointerInfo& PtrInfo,
uint64_t Size)
llvm::MachineMemOperand* getMachineMemOperand(
const llvm::MachineMemOperand* MMO,
const llvm::MachinePointerInfo& PtrInfo,
uint64_t Size)
Description
getMachineMemOperand - Allocate a new MachineMemOperand by copying an existing one, replacing only the MachinePointerInfo and size. MachineMemOperands are owned by the MachineFunction and need not be explicitly deallocated.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:988
Parameters
- const llvm::MachineMemOperand* MMO
- const llvm::MachinePointerInfo& PtrInfo
- uint64_t Size
¶llvm::StringRef getName() const
llvm::StringRef getName() const
Description
getName - Return the name of the corresponding LLVM function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:628
¶unsigned int getNewDebugInstrNum()
unsigned int getNewDebugInstrNum()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1266
¶unsigned int getNumBlockIDs() const
unsigned int getNumBlockIDs() const
Description
getNumBlockIDs - Return the number of MBB ID's allocated.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:798
¶llvm::GISelChangeObserver* getObserver() const
llvm::GISelChangeObserver* getObserver() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:605
¶llvm::MachineJumpTableInfo*
getOrCreateJumpTableInfo(unsigned int JTEntryKind)
llvm::MachineJumpTableInfo*
getOrCreateJumpTableInfo(unsigned int JTEntryKind)
Description
getOrCreateJumpTableInfo - Get the JumpTableInfo for this function, if it does already exist, allocate one.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:684
Parameters
- unsigned int JTEntryKind
¶llvm::LandingPadInfo& getOrCreateLandingPadInfo(
llvm::MachineBasicBlock* LandingPad)
llvm::LandingPadInfo& getOrCreateLandingPadInfo(
llvm::MachineBasicBlock* LandingPad)
Description
Find or create an LandingPadInfo for the specified MachineBasicBlock.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1102
Parameters
- llvm::MachineBasicBlock* LandingPad
¶llvm::MCSymbol* getPICBaseSymbol() const
llvm::MCSymbol* getPICBaseSymbol() const
Description
getPICBaseSymbol - Return a function-local symbol to represent the PIC base.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1049
¶llvm::PseudoSourceValueManager& getPSVManager()
const
llvm::PseudoSourceValueManager& getPSVManager()
const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:616
¶const llvm::MachineFunctionProperties&
getProperties() const
const llvm::MachineFunctionProperties&
getProperties() const
Description
Get the function properties
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:747
¶llvm::MachineFunctionProperties& getProperties()
llvm::MachineFunctionProperties& getProperties()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:748
¶const llvm::MachineRegisterInfo& getRegInfo()
const
const llvm::MachineRegisterInfo& getRegInfo()
const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:667
¶llvm::MachineRegisterInfo& getRegInfo()
llvm::MachineRegisterInfo& getRegInfo()
Description
getRegInfo - Return information about the registers currently in use.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:666
¶llvm::MCSection* getSection() const
llvm::MCSection* getSection() const
Description
Returns the Section this function belongs to.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:611
¶static llvm::MachineFunction::BasicBlockListType
llvm::MachineFunction::*
getSublistAccess(llvm::MachineBasicBlock*)
static llvm::MachineFunction::BasicBlockListType
llvm::MachineFunction::*
getSublistAccess(llvm::MachineBasicBlock*)
Description
Support for MachineBasicBlock::getNextNode().
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:842
Parameters
¶const llvm::TargetSubtargetInfo& getSubtarget()
const
const llvm::TargetSubtargetInfo& getSubtarget()
const
Description
getSubtarget - Return the subtarget for which this machine code is being compiled.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:656
¶template <typename STC>
const STC& getSubtarget() const
template <typename STC>
const STC& getSubtarget() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:661
Templates
- STC
¶const llvm::LLVMTargetMachine& getTarget() const
const llvm::LLVMTargetMachine& getTarget() const
Description
getTarget - Return the target machine this machine code is compiled with
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:652
¶unsigned int getTypeIDFor(
const llvm::GlobalValue* TI)
unsigned int getTypeIDFor(
const llvm::GlobalValue* TI)
Description
Return the type id for the specified typeinfo. This is function wide.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1135
Parameters
- const llvm::GlobalValue* TI
¶const std::vector<const GlobalValue*>&
getTypeInfos() const
const std::vector<const GlobalValue*>&
getTypeInfos() const
Description
Return a reference to the C++ typeinfo for the current function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1211
¶const llvm::MachineFunction::VariableDbgInfoMapTy&
getVariableDbgInfo() const
const llvm::MachineFunction::VariableDbgInfoMapTy&
getVariableDbgInfo() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1230
¶llvm::MachineFunction::VariableDbgInfoMapTy&
getVariableDbgInfo()
llvm::MachineFunction::VariableDbgInfoMapTy&
getVariableDbgInfo()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1229
¶const llvm::WasmEHFuncInfo* getWasmEHFuncInfo()
const
const llvm::WasmEHFuncInfo* getWasmEHFuncInfo()
const
Description
getWasmEHFuncInfo - Return information about how the current function uses Wasm exception handling. Returns null for functions that don't use wasm exception handling.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:694
¶llvm::WasmEHFuncInfo* getWasmEHFuncInfo()
llvm::WasmEHFuncInfo* getWasmEHFuncInfo()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:695
¶unsigned int getWasmLandingPadIndex(
const llvm::MachineBasicBlock* LPad) const
unsigned int getWasmLandingPadIndex(
const llvm::MachineBasicBlock* LPad) const
Description
Get the index in wasm EH for a given landing pad.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1159
Parameters
- const llvm::MachineBasicBlock* LPad
¶const llvm::WinEHFuncInfo* getWinEHFuncInfo()
const
const llvm::WinEHFuncInfo* getWinEHFuncInfo()
const
Description
getWinEHFuncInfo - Return information about how the current function uses Windows exception handling. Returns null for functions that don't use funclets for exception handling.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:700
¶llvm::WinEHFuncInfo* getWinEHFuncInfo()
llvm::WinEHFuncInfo* getWinEHFuncInfo()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:701
¶void handleInsertion(llvm::MachineInstr& MI)
void handleInsertion(llvm::MachineInstr& MI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:455
Parameters
¶void handleRemoval(llvm::MachineInstr& MI)
void handleRemoval(llvm::MachineInstr& MI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:456
Parameters
¶bool hasAnyCallSiteLabel() const
bool hasAnyCallSiteLabel() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1180
¶bool hasAnyCallSiteLandingPad() const
bool hasAnyCallSiteLandingPad() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1164
¶bool hasAnyWasmLandingPadIndex() const
bool hasAnyWasmLandingPadIndex() const
Description
Return if there is any wasm exception handling.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1144
¶bool hasBBLabels() const
bool hasBBLabels() const
Description
Returns true if basic block labels are to be generated for this function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:641
¶bool hasBBSections() const
bool hasBBSections() const
Description
Returns true if this function has basic block sections enabled.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:634
¶bool hasCallSiteBeginLabel(
llvm::MCSymbol* BeginLabel) const
bool hasCallSiteBeginLabel(
llvm::MCSymbol* BeginLabel) const
Description
Return true if the begin label has a call site number associated with it.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1197
Parameters
- llvm::MCSymbol* BeginLabel
¶bool hasCallSiteLandingPad(llvm::MCSymbol* Sym)
bool hasCallSiteLandingPad(llvm::MCSymbol* Sym)
Description
Return true if the landing pad Eh symbol has an associated call site.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1176
Parameters
- llvm::MCSymbol* Sym
¶bool hasEHCatchret() const
bool hasEHCatchret() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1092
¶bool hasEHFunclets() const
bool hasEHFunclets() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1098
¶bool hasEHScopes() const
bool hasEHScopes() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1095
¶bool hasInlineAsm() const
bool hasInlineAsm() const
Description
Returns true if the function contains any inline assembly.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:729
¶bool hasWasmLandingPadIndex(
const llvm::MachineBasicBlock* LPad) const
bool hasWasmLandingPadIndex(
const llvm::MachineBasicBlock* LPad) const
Description
Returns true if the landing pad has an associate index in wasm EH.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1154
Parameters
- const llvm::MachineBasicBlock* LPad
¶bool hasWinCFI() const
bool hasWinCFI() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:738
¶void init()
void init()
Description
Allocate and initialize the different members. In particular, the XXXInfo data structure.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:401
¶void insert(llvm::MachineFunction::iterator MBBI,
llvm::MachineBasicBlock* MBB)
void insert(llvm::MachineFunction::iterator MBBI,
llvm::MachineBasicBlock* MBB)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:872
Parameters
¶void makeDebugValueSubstitution(
llvm::MachineFunction::DebugInstrOperandPair,
llvm::MachineFunction::DebugInstrOperandPair,
unsigned int SubReg = 0)
void makeDebugValueSubstitution(
llvm::MachineFunction::DebugInstrOperandPair,
llvm::MachineFunction::DebugInstrOperandPair,
unsigned int SubReg = 0)
Description
Create a substitution between one <instr ,operand> value to a different, new value.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:527
Parameters
- llvm::MachineFunction::DebugInstrOperandPair
- llvm::MachineFunction::DebugInstrOperandPair
- unsigned int SubReg = 0
¶void moveCallSiteInfo(
const llvm::MachineInstr* Old,
const llvm::MachineInstr* New)
void moveCallSiteInfo(
const llvm::MachineInstr* Old,
const llvm::MachineInstr* New)
Description
Move the call site info from \p Old to \Newcall site info. This function is used when we are replacing one call instruction with another one to the same callee.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1263
Parameters
- const llvm::MachineInstr* Old
- const llvm::MachineInstr* New
¶bool needsFrameMoves() const
bool needsFrameMoves() const
Description
True if this function needs frame moves for debug or exceptions.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:744
¶void print(
llvm::raw_ostream& OS,
const llvm::SlotIndexes* = nullptr) const
void print(
llvm::raw_ostream& OS,
const llvm::SlotIndexes* = nullptr) const
Description
print - Print out the MachineFunction in a format suitable for debugging to the specified stream.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:809
Parameters
- llvm::raw_ostream& OS
- const llvm::SlotIndexes* = nullptr
¶void push_back(llvm::MachineBasicBlock* MBB)
void push_back(llvm::MachineBasicBlock* MBB)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:870
Parameters
¶void push_front(llvm::MachineBasicBlock* MBB)
void push_front(llvm::MachineBasicBlock* MBB)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:871
Parameters
¶llvm::MachineFunction::reverse_iterator rbegin()
llvm::MachineFunction::reverse_iterator rbegin()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:858
¶llvm::MachineFunction::const_reverse_iterator
rbegin() const
llvm::MachineFunction::const_reverse_iterator
rbegin() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:859
¶void remove(llvm::MachineBasicBlock* MBBI)
void remove(llvm::MachineBasicBlock* MBBI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:886
Parameters
- llvm::MachineBasicBlock* MBBI
¶void remove(llvm::MachineFunction::iterator MBBI)
void remove(llvm::MachineFunction::iterator MBBI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:885
Parameters
¶void removeFromMBBNumbering(unsigned int N)
void removeFromMBBNumbering(unsigned int N)
Description
removeFromMBBNumbering - Remove the specific machine basic block from our tracker, this is only really to be used by the MachineBasicBlock implementation.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:916
Parameters
- unsigned int N
¶llvm::MachineFunction::reverse_iterator rend()
llvm::MachineFunction::reverse_iterator rend()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:860
¶llvm::MachineFunction::const_reverse_iterator
rend() const
llvm::MachineFunction::const_reverse_iterator
rend() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:861
¶void reset()
void reset()
Description
Reset the instance as if it was just created.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:581
¶void resetDelegate(
llvm::MachineFunction::Delegate* delegate)
void resetDelegate(
llvm::MachineFunction::Delegate* delegate)
Description
Reset the currently registered delegate - otherwise assert.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:587
Parameters
- llvm::MachineFunction::Delegate* delegate
¶llvm::MachineFunction::DebugInstrOperandPair
salvageCopySSA(
llvm::MachineInstr& MI,
DenseMap<llvm::Register,
llvm::MachineFunction::
DebugInstrOperandPair>&
DbgPHICache)
llvm::MachineFunction::DebugInstrOperandPair
salvageCopySSA(
llvm::MachineInstr& MI,
DenseMap<llvm::Register,
llvm::MachineFunction::
DebugInstrOperandPair>&
DbgPHICache)
Description
Find the underlying defining instruction / operand for a COPY instruction while in SSA form. Copies do not actually define values -- they move them between registers. Labelling a COPY-like instruction with an instruction number is to be avoided as it makes value numbers non-unique later in compilation. This method follows the definition chain for any sequence of COPY-like instructions to find whatever non-COPY-like instruction defines the copied value; or for parameters, creates a DBG_PHI on entry. May insert instructions into the entry block!\p MI The copy-like instruction to salvage.\p DbgPHICache A container to cache already-solved COPYs.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:553
Parameters
- llvm::MachineInstr& MI
- DenseMap< llvm::Register, llvm::MachineFunction::DebugInstrOperandPair>& DbgPHICache
Returns
An instruction/operand pair identifying the defining value.
¶llvm::MachineFunction::DebugInstrOperandPair
salvageCopySSAImpl(llvm::MachineInstr& MI)
llvm::MachineFunction::DebugInstrOperandPair
salvageCopySSAImpl(llvm::MachineInstr& MI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:556
Parameters
¶void setAlignment(llvm::Align A)
void setAlignment(llvm::Align A)
Description
setAlignment - Set the alignment of the function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:707
Parameters
¶void setBBSectionsType(llvm::BasicBlockSection V)
void setBBSectionsType(llvm::BasicBlockSection V)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:645
Parameters
- llvm::BasicBlockSection V
¶void setCallSiteBeginLabel(
llvm::MCSymbol* BeginLabel,
unsigned int Site)
void setCallSiteBeginLabel(
llvm::MCSymbol* BeginLabel,
unsigned int Site)
Description
Map the begin label for a call site.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1185
Parameters
- llvm::MCSymbol* BeginLabel
- unsigned int Site
¶void setCallSiteLandingPad(
llvm::MCSymbol* Sym,
ArrayRef<unsigned int> Sites)
void setCallSiteLandingPad(
llvm::MCSymbol* Sym,
ArrayRef<unsigned int> Sites)
Description
Map the landing pad's EH symbol to the call site indexes.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1141
Parameters
- llvm::MCSymbol* Sym
- ArrayRef<unsigned int> Sites
¶void setCallsEHReturn(bool b)
void setCallsEHReturn(bool b)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1087
Parameters
- bool b
¶void setCallsUnwindInit(bool b)
void setCallsUnwindInit(bool b)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1090
Parameters
- bool b
¶void setDebugInstrNumberingCount(unsigned int Num)
void setDebugInstrNumberingCount(unsigned int Num)
Description
Set value of DebugInstrNumberingCount field. Avoid using this unless you're deserializing this data.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:470
Parameters
- unsigned int Num
¶void setDelegate(
llvm::MachineFunction::Delegate* delegate)
void setDelegate(
llvm::MachineFunction::Delegate* delegate)
Description
Set the delegate. resetDelegate must be called before attempting to set.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:595
Parameters
- llvm::MachineFunction::Delegate* delegate
¶void setExposesReturnsTwice(bool B)
void setExposesReturnsTwice(bool B)
Description
setCallsSetJmp - Set a flag that indicates if there's a call to a "returns twice" function.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:724
Parameters
- bool B
¶void setHasEHCatchret(bool V)
void setHasEHCatchret(bool V)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1093
Parameters
- bool V
¶void setHasEHFunclets(bool V)
void setHasEHFunclets(bool V)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1099
Parameters
- bool V
¶void setHasEHScopes(bool V)
void setHasEHScopes(bool V)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1096
Parameters
- bool V
¶void setHasInlineAsm(bool B)
void setHasInlineAsm(bool B)
Description
Set a flag that indicates that the function contains inline assembly.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:734
Parameters
- bool B
¶void setHasWinCFI(bool v)
void setHasWinCFI(bool v)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:741
Parameters
- bool v
¶void setObserver(llvm::GISelChangeObserver* O)
void setObserver(llvm::GISelChangeObserver* O)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:603
Parameters
¶void setSection(llvm::MCSection* S)
void setSection(llvm::MCSection* S)
Description
Indicates the Section this function belongs to.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:614
Parameters
¶void setVariableDbgInfo(
const llvm::DILocalVariable* Var,
const llvm::DIExpression* Expr,
int Slot,
const llvm::DILocation* Loc)
void setVariableDbgInfo(
const llvm::DILocalVariable* Var,
const llvm::DIExpression* Expr,
int Slot,
const llvm::DILocation* Loc)
Description
Collect information used to emit debugging information of a variable.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1224
Parameters
- const llvm::DILocalVariable* Var
- const llvm::DIExpression* Expr
- int Slot
- const llvm::DILocation* Loc
¶void setWasmLandingPadIndex(
const llvm::MachineBasicBlock* LPad,
unsigned int Index)
void setWasmLandingPadIndex(
const llvm::MachineBasicBlock* LPad,
unsigned int Index)
Description
Map the landing pad to its index. Used for Wasm exception handling.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1149
Parameters
- const llvm::MachineBasicBlock* LPad
- unsigned int Index
¶bool shouldSplitStack() const
bool shouldSplitStack() const
Description
Should we be emitting segmented stack stuff for the function
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:795
¶unsigned int size() const
unsigned int size() const
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:863
¶template <typename Comp>
void sort(Comp comp)
template <typename Comp>
void sort(Comp comp)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:891
Templates
- Comp
Parameters
- Comp comp
¶void splice(
llvm::MachineFunction::iterator InsertPt,
llvm::MachineFunction::iterator MBBI)
void splice(
llvm::MachineFunction::iterator InsertPt,
llvm::MachineFunction::iterator MBBI)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:875
Parameters
¶void splice(
llvm::MachineFunction::iterator InsertPt,
llvm::MachineBasicBlock* MBB)
void splice(
llvm::MachineFunction::iterator InsertPt,
llvm::MachineBasicBlock* MBB)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:878
Parameters
- llvm::MachineFunction::iterator InsertPt
- llvm::MachineBasicBlock* MBB
¶void splice(
llvm::MachineFunction::iterator InsertPt,
llvm::MachineFunction::iterator MBBI,
llvm::MachineFunction::iterator MBBE)
void splice(
llvm::MachineFunction::iterator InsertPt,
llvm::MachineFunction::iterator MBBI,
llvm::MachineFunction::iterator MBBE)
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:881
Parameters
- llvm::MachineFunction::iterator InsertPt
- llvm::MachineFunction::iterator MBBI
- llvm::MachineFunction::iterator MBBE
¶void substituteDebugValuesForInst(
const llvm::MachineInstr& Old,
llvm::MachineInstr& New,
unsigned int MaxOperand = (2147483647 * 2U +
1U))
void substituteDebugValuesForInst(
const llvm::MachineInstr& Old,
llvm::MachineInstr& New,
unsigned int MaxOperand = (2147483647 * 2U +
1U))
Description
Create substitutions for any tracked values in \p Old, to point at\p New. Needed when we re-create an instruction during optimization, which has the same signature (i.e., def operands in the same place) but a modified instruction type, flags, or otherwise. An example: X86 moves are sometimes transformed into equivalent LEAs. If the two instructions are not the same opcode, limit which operands to examine for substitutions to the first N operands by setting\p MaxOperand.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:538
Parameters
- const llvm::MachineInstr& Old
- llvm::MachineInstr& New
- unsigned int MaxOperand = (2147483647 * 2U + 1U)
¶void tidyLandingPads(
DenseMap<llvm::MCSymbol*, uintptr_t>* LPMap =
nullptr,
bool TidyIfNoBeginLabels = true)
void tidyLandingPads(
DenseMap<llvm::MCSymbol*, uintptr_t>* LPMap =
nullptr,
bool TidyIfNoBeginLabels = true)
Description
Remap landing pad labels and remove any deleted landing pads.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1105
Parameters
- DenseMap<llvm::MCSymbol*, uintptr_t>* LPMap = nullptr
- bool TidyIfNoBeginLabels = true
¶bool useDebugInstrRef() const
bool useDebugInstrRef() const
Description
Returns true if the function's variable locations should be tracked with instruction referencing.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:567
¶bool verify(llvm::Pass* p = nullptr,
const char* Banner = nullptr,
bool AbortOnError = true) const
bool verify(llvm::Pass* p = nullptr,
const char* Banner = nullptr,
bool AbortOnError = true) const
Description
Run the current MachineFunction through the machine code verifier, useful for debugger use.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:831
Parameters
- llvm::Pass* p = nullptr
- const char* Banner = nullptr
- bool AbortOnError = true
Returns
true if no problems were found.
¶void viewCFG() const
void viewCFG() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:816
¶void viewCFGOnly() const
void viewCFGOnly() const
Description
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.
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:823
¶~MachineFunction()
~MachineFunction()
Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:578