class MachineFunction

Declaration

class MachineFunction { /* full declaration omitted */ };

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

Member Variables

public llvm::MachineFunction::VariableDbgInfoMapTy VariableDbgInfos

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:731

Parameters

const llvm::MachineInstr* Orig

llvm::MachineInstr& CloneMachineInstrBundle(
    llvm::MachineBasicBlock& MBB,
    int InsertBefore,
    const llvm::MachineInstr& Orig)

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

Parameters

llvm::MachineBasicBlock& MBB
int InsertBefore
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:746

Parameters

const llvm::BasicBlock* bb = nullptr

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

Description

CreateMachineInstr - Allocate a new MachineInstr. Use this instead of `new MachineInstr'.

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

Parameters

const llvm::MCInstrDesc& MCID
const llvm::DebugLoc& DL
bool NoImp = false

void DeleteMachineBasicBlock(
    llvm::MachineBasicBlock* MBB)

Description

DeleteMachineBasicBlock - Delete the given MachineBasicBlock.

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

Parameters

llvm::MachineBasicBlock* MBB

void DeleteMachineInstr(llvm::MachineInstr* MI)

Description

DeleteMachineInstr - Delete the given MachineInstr.

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

Parameters

llvm::MachineInstr* MI

MachineFunction(const llvm::MachineFunction&)

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

Parameters

const llvm::MachineFunction&

MachineFunction(
    const 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:417

Parameters

const 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:603

Parameters

llvm::MachineBasicBlock* MBBFrom = nullptr

void addCallArgsForwardingRegs(
    const llvm::MachineInstr* CallI,
    llvm::MachineFunction::CallSiteInfoImpl&&
        CallInfo)

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

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:883

Parameters

llvm::MachineBasicBlock* LandingPad
ArrayRef<const llvm::GlobalValue*> TyInfo

void addCleanup(
    llvm::MachineBasicBlock* LandingPad)

Description

Add a cleanup action for a landing pad.

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

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:954

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:887

Parameters

llvm::MachineBasicBlock* LandingPad
ArrayRef<const llvm::GlobalValue*> TyInfo

unsigned int addFrameInst(
    const llvm::MCCFIInstruction& Inst)

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

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:874

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:880

Parameters

llvm::MachineBasicBlock* LandingPad

unsigned int addLiveIn(
    unsigned int 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:646

Parameters

unsigned int 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:843

Parameters

llvm::MCSymbol* Target

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

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

Parameters

llvm::MachineBasicBlock* LandingPad
const llvm::Function* Filter
const llvm::BlockAddress* RecoverBA

void addSEHCleanupHandler(
    llvm::MachineBasicBlock* LandingPad,
    const llvm::Function* Cleanup)

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

Parameters

llvm::MachineBasicBlock* LandingPad
const llvm::Function* Cleanup

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:706

Parameters

llvm::MachineBasicBlock* MBB

llvm::MachineOperand* allocateOperandArray(
    int Cap)

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

Parameters

int Cap

uint32_t* allocateRegMask()

Description

Allocate and initialize a register mask with @p NumRegister bits.

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

ArrayRef<int> allocateShuffleMask(
    ArrayRef<int> Mask)

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

Parameters

ArrayRef<int> Mask

const llvm::MachineBasicBlock& back() const

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

llvm::MachineBasicBlock& back()

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

int begin() const

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

int begin()

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

bool callsEHReturn() const

Description

\ {

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

bool callsUnwindInit() const

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

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:1012

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:810

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:805

Parameters

ArrayRef<llvm::MachineMemOperand*> MMOs
llvm::MCSymbol* PreInstrSymbol = nullptr
llvm::MCSymbol* PostInstrSymbol = nullptr
llvm::MDNode* HeapAllocMarker = nullptr

void deallocateOperandArray(
    int Cap,
    llvm::MachineOperand* Array)

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

Parameters

int Cap
llvm::MachineOperand* Array

void dump() const

Description

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

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

bool empty() const

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

int end()

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

int end() const

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

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:523

Parameters

llvm::Align A

void erase(llvm::MachineBasicBlock* MBBI)

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

Parameters

llvm::MachineBasicBlock* MBBI

void erase(int MBBI)

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

Parameters

int 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:1007

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:531

llvm::MachineBasicBlock& front()

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

const llvm::MachineBasicBlock& front() const

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

llvm::Align getAlignment() const

Description

getAlignment - Return the alignment of the function.

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

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:586

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:942

Parameters

llvm::MCSymbol* BeginLabel

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:925

Parameters

llvm::MCSymbol* Sym

const int& getCallSitesInfo() const

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

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

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

const llvm::MachineConstantPool* getConstantPool()
    const

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

llvm::MachineConstantPool* getConstantPool()

Description

getConstantPool - Return the constant pool object for the current function.

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

llvm::MCContext& getContext() const

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

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:453

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:580

Parameters

const llvm::fltSemantics& FPType

int getFilterIDFor(int& TyIds)

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

Parameters

int& TyIds

const int& getFilterIds() const

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

const llvm::MachineFrameInfo& getFrameInfo() const

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

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:485

const int& getFrameInstructions() const

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

const llvm::Function& getFunction() const

Description

Return the LLVM function that this machine code represents

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

unsigned int getFunctionNumber() const

Description

getFunctionNumber - Return a unique ID for the current function.

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

template <typename Ty>
const Ty* getInfo() const

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

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:567

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:694

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:818

Parameters

unsigned int JTI
llvm::MCContext& Ctx
bool isLinkerPrivate = false

llvm::MachineJumpTableInfo* getJumpTableInfo()

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

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:492

const int& getLandingPads() const

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

const int& getLongjmpTargets() const

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

llvm::MachineModuleInfo& getMMI() const

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

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:772

Parameters

const llvm::MachineMemOperand* MMO
const llvm::AAMDNodes& AAInfo

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

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:766

Parameters

const llvm::MachineMemOperand* MMO
int64_t Offset
uint64_t Size

llvm::MachineMemOperand* getMachineMemOperand(
    llvm::MachinePointerInfo PtrInfo,
    MachineMemOperand::Flags f,
    uint64_t s,
    unsigned int 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:754

Parameters

llvm::MachinePointerInfo PtrInfo
MachineMemOperand::Flags f
uint64_t s
unsigned int 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,
    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:778

Parameters

const llvm::MachineMemOperand* MMO
MachineMemOperand::Flags Flags

llvm::StringRef getName() const

Description

getName - Return the name of the corresponding LLVM function.

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

unsigned int getNumBlockIDs() const

Description

getNumBlockIDs - Return the number of MBB ID's allocated.

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

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:497

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:861

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:823

llvm::PseudoSourceValueManager& getPSVManager()
    const

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

llvm::MachineFunctionProperties& getProperties()

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

const llvm::MachineFunctionProperties&
getProperties() const

Description

Get the function properties

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

llvm::MachineRegisterInfo& getRegInfo()

Description

getRegInfo - Return information about the registers currently in use.

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

const llvm::MachineRegisterInfo& getRegInfo()
    const

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

static int llvm::MachineFunction::*
getSublistAccess(llvm::MachineBasicBlock*)

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

Parameters

llvm::MachineBasicBlock*

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:474

Templates

STC

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:469

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:465

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:900

Parameters

const llvm::GlobalValue* TI

const int& getTypeInfos() const

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

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

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

llvm::MachineFunction::VariableDbgInfoMapTy&
getVariableDbgInfo()

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

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:507

llvm::WasmEHFuncInfo* getWasmEHFuncInfo()

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

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:919

Parameters

const llvm::MachineBasicBlock* LPad

llvm::WinEHFuncInfo* getWinEHFuncInfo()

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

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:513

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:949

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:932

Parameters

llvm::MCSymbol* Sym

bool hasEHFunclets() const

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

bool hasEHScopes() const

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

bool hasInlineAsm() const

Description

Returns true if the function contains any inline assembly.

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

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:914

Parameters

const llvm::MachineBasicBlock* LPad

bool hasWinCFI() const

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

void insert(int MBBI,
            llvm::MachineBasicBlock* MBB)

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

Parameters

int MBBI
llvm::MachineBasicBlock* MBB

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:1002

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:557

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:607

Parameters

llvm::raw_ostream& OS
const llvm::SlotIndexes* = nullptr

void push_back(llvm::MachineBasicBlock* MBB)

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

Parameters

llvm::MachineBasicBlock* MBB

void push_front(llvm::MachineBasicBlock* MBB)

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

Parameters

llvm::MachineBasicBlock* MBB

int rbegin()

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

int rbegin() const

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

void remove(llvm::MachineBasicBlock* MBBI)

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

Parameters

llvm::MachineBasicBlock* MBBI

void remove(int MBBI)

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

Parameters

int 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:714

Parameters

unsigned int N

int rend()

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

int rend() const

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

void reset()

Description

Reset the instance as if it was just created.

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

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

Description

Reset the currently registered delegate - otherwise assert.

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

Parameters

llvm::MachineFunction::Delegate* delegate

void setAlignment(llvm::Align A)

Description

setAlignment - Set the alignment of the function.

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

Parameters

llvm::Align A

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:937

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:906

Parameters

llvm::MCSymbol* Sym
ArrayRef<unsigned int> Sites

void setCallsEHReturn(bool b)

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

Parameters

bool b

void setCallsUnwindInit(bool b)

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

Parameters

bool b

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:439

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:537

Parameters

bool B

void setHasEHFunclets(bool V)

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

Parameters

bool V

void setHasEHScopes(bool V)

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

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:547

Parameters

bool B

void setHasWinCFI(bool v)

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

Parameters

bool v

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:976

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:909

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:593

unsigned int size() const

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

template <typename Comp>
void sort(Comp comp)

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

Templates

Comp

Parameters

Comp comp

void splice(int InsertPt, int MBBI)

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

Parameters

int InsertPt
int MBBI

void splice(int InsertPt,
            llvm::MachineBasicBlock* MBB)

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

Parameters

int InsertPt
llvm::MachineBasicBlock* MBB

void splice(int InsertPt, int MBBI, int MBBE)

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

Parameters

int InsertPt
int MBBI
int MBBE

void tidyLandingPads(
    int* LPMap = nullptr,
    bool TidyIfNoBeginLabels = true)

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

Parameters

int* LPMap = nullptr
bool TidyIfNoBeginLabels = true

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:629

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:614

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:621

~MachineFunction()

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