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

Methods

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)

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)

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&)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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::MachineBasicBlock* MBB

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()

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1025

Parameters

ArrayRef<int> Mask

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()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:868

const llvm::MachineBasicBlock& back() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:867

llvm::MachineFunction::iterator begin()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:853

llvm::MachineFunction::const_iterator begin()
    const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:854

bool callsEHReturn() const

Description

\ {

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1086

bool callsUnwindInit() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1089

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)

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)

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)

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)

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)

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)

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)

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)

Description

DeleteMachineBasicBlock - Delete the given MachineBasicBlock.

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:953

Parameters

llvm::MachineBasicBlock* MBB

void deleteMachineInstr(llvm::MachineInstr* MI)

Description

DeleteMachineInstr - Delete the given MachineInstr.

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:946

Parameters

llvm::MachineInstr* MI

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:864

llvm::MachineFunction::const_iterator end() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:856

llvm::MachineFunction::iterator end()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:855

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

llvm::Align A

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:887

Parameters

llvm::MachineFunction::iterator 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)

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

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()

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:865

llvm::MachineBasicBlock& front()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:866

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

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

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)

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)

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1244

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1206

const llvm::MachineConstantPool* getConstantPool()
    const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:689

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:608

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

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)

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

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()

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:673

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()

Description

Return the LLVM function that this machine code represents

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:622

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

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:761

Templates

Ty

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

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

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

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()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:680

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

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:607

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)

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)

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)

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)

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)

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)

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)

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

Description

getName - Return the name of the corresponding LLVM function.

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:628

unsigned int getNewDebugInstrNum()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1266

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:605

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)

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

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:616

const llvm::MachineFunctionProperties&
getProperties() const

Description

Get the function properties

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:747

llvm::MachineFunctionProperties& getProperties()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:748

const llvm::MachineRegisterInfo& getRegInfo()
    const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:667

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

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*)

Description

Support for MachineBasicBlock::getNextNode().

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:842

Parameters

llvm::MachineBasicBlock*

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

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

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)

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

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1230

llvm::MachineFunction::VariableDbgInfoMapTy&
getVariableDbgInfo()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1229

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()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:695

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

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()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:701

void handleInsertion(llvm::MachineInstr& MI)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:455

Parameters

llvm::MachineInstr& MI

void handleRemoval(llvm::MachineInstr& MI)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:456

Parameters

llvm::MachineInstr& MI

bool hasAnyCallSiteLabel() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1180

bool hasAnyCallSiteLandingPad() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1164

bool hasAnyWasmLandingPadIndex() const

Description

Return if there is any wasm exception handling.

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1144

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

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

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)

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1092

bool hasEHFunclets() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1098

bool hasEHScopes() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1095

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

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:738

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:872

Parameters

llvm::MachineFunction::iterator MBBI
llvm::MachineBasicBlock* MBB

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)

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

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

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:870

Parameters

llvm::MachineBasicBlock* MBB

void push_front(llvm::MachineBasicBlock* MBB)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:871

Parameters

llvm::MachineBasicBlock* MBB

llvm::MachineFunction::reverse_iterator rbegin()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:858

llvm::MachineFunction::const_reverse_iterator
rbegin() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:859

void remove(llvm::MachineBasicBlock* MBBI)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:886

Parameters

llvm::MachineBasicBlock* MBBI

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

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:885

Parameters

llvm::MachineFunction::iterator MBBI

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()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:860

llvm::MachineFunction::const_reverse_iterator
rend() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:861

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)

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)

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:556

Parameters

llvm::MachineInstr& MI

void setAlignment(llvm::Align A)

Description

setAlignment - Set the alignment of the function.

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:707

Parameters

llvm::Align A

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)

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)

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1087

Parameters

bool b

void setCallsUnwindInit(bool b)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1090

Parameters

bool b

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)

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)

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1093

Parameters

bool V

void setHasEHFunclets(bool V)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1099

Parameters

bool V

void setHasEHScopes(bool V)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:1096

Parameters

bool V

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:741

Parameters

bool v

void setObserver(llvm::GISelChangeObserver* O)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:603

Parameters

llvm::GISelChangeObserver* O

void setSection(llvm::MCSection* S)

Description

Indicates the Section this function belongs to.

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:614

Parameters

llvm::MCSection* S

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)

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

Description

Should we be emitting segmented stack stuff for the function

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:795

unsigned int size() const

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:863

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)

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:875

Parameters

llvm::MachineFunction::iterator InsertPt
llvm::MachineFunction::iterator MBBI

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)

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))

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)

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

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

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

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

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()

Declared at: llvm/include/llvm/CodeGen/MachineFunction.h:578