class FunctionLoweringInfo

Declaration

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

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:53

Member Variables

public const llvm::Function* Fn
public llvm::MachineFunction* MF
public const llvm::TargetLowering* TLI
public llvm::MachineRegisterInfo* RegInfo
public llvm::BranchProbabilityInfo* BPI
public const llvm::LegacyDivergenceAnalysis* DA
public bool CanLowerReturn
CanLowerReturn - true iff the function's return value can be lowered to registers.
public bool SplitCSR
True if part of the CSRs will be handled via explicit copies.
public unsigned int DemoteRegister
DemoteRegister - if CanLowerReturn is false, DemoteRegister is a vreg allocated to hold a pointer to the hidden sret parameter.
public int MBBMap
public int ValueMap
public int VirtReg2Value
public int CatchPadExceptionPointers
public int StatepointSpillMaps
public int StaticAllocaMap
public int ByValArgFrameIndexMap
public SmallVector<llvm::MachineInstr*, 8> ArgDbgValues
public llvm::BitVector DescribedArgs
public int RegFixups
public int RegsWithFixups
public SmallVector<unsigned int, 50> StatepointStackSlots
public llvm::MachineBasicBlock* MBB
MBB - The current block.
public int InsertPt
public int PreferredExtendType
public SmallPtrSet<const llvm::BasicBlock*, 4> VisitedBBs
public int PHINodesToUpdate
public unsigned int OrigNumPHINodesToUpdate
public unsigned int ExceptionPointerVirtReg
If the current MBB is a landing pad, the exception pointer and exception selector registers are copied into these virtual registers by SelectionDAGISel::PrepareEHLandingPad().
public unsigned int ExceptionSelectorVirtReg
If the current MBB is a landing pad, the exception pointer and exception selector registers are copied into these virtual registers by SelectionDAGISel::PrepareEHLandingPad().

Method Overview

Methods

void AddLiveOutRegInfo(
    unsigned int Reg,
    unsigned int NumSignBits,
    const llvm::KnownBits& Known)

Description

AddLiveOutRegInfo - Adds LiveOutInfo for a register.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:239

Parameters

unsigned int Reg
unsigned int NumSignBits
const llvm::KnownBits& Known

void ComputePHILiveOutRegInfo(
    const llvm::PHINode*)

Description

ComputePHILiveOutRegInfo - Compute LiveOutInfo for a PHI's destination register based on the LiveOutInfo of its operands.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:254

Parameters

const llvm::PHINode*

unsigned int CreateReg(llvm::MVT VT,
                       bool isDivergent = false)

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:202

Parameters

llvm::MVT VT
bool isDivergent = false

unsigned int CreateRegs(const llvm::Value* V)

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:204

Parameters

const llvm::Value* V

unsigned int CreateRegs(llvm::Type* Ty,
                        bool isDivergent = false)

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:206

Parameters

llvm::Type* Ty
bool isDivergent = false

const llvm::FunctionLoweringInfo::LiveOutInfo*
GetLiveOutRegInfo(unsigned int Reg)

Description

GetLiveOutRegInfo - Gets LiveOutInfo for a register, returning NULL if the register is a PHI destination and the PHI's LiveOutInfo is not valid.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:220

Parameters

unsigned int Reg

const llvm::FunctionLoweringInfo::LiveOutInfo*
GetLiveOutRegInfo(unsigned int Reg,
                  unsigned int BitWidth)

Description

GetLiveOutRegInfo - Gets LiveOutInfo for a register, returning NULL if the register is a PHI destination and the PHI's LiveOutInfo is not valid. If the register's LiveOutInfo is for a smaller bit width, it is extended to the larger bit width by zero extension. The bit width must be no smaller than the LiveOutInfo's existing bit width.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:236

Parameters

unsigned int Reg
unsigned int BitWidth

unsigned int InitializeRegForValue(
    const llvm::Value* V)

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:208

Parameters

const llvm::Value* V

void InvalidatePHILiveOutRegInfo(
    const llvm::PHINode* PN)

Description

InvalidatePHILiveOutRegInfo - Invalidates a PHI's LiveOutInfo, to be called when a block is visited before all of its predecessors.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:258

Parameters

const llvm::PHINode* PN

void clear()

Description

clear - Clear out all the function-specific state. This returns this FunctionLoweringInfo to an empty state, ready to be used for a different function.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:194

int getArgumentFrameIndex(const llvm::Argument* A)

Description

getArgumentFrameIndex - Get frame index for the byval argument.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:277

Parameters

const llvm::Argument* A

unsigned int getCatchPadExceptionPointerVReg(
    const llvm::Value* CPI,
    const llvm::TargetRegisterClass* RC)

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:279

Parameters

const llvm::Value* CPI
const llvm::TargetRegisterClass* RC

const llvm::Value* getValueFromVirtualReg(
    unsigned int Vreg)

Description

This method is called from TargetLowerinInfo::isSDNodeSourceOfDivergence to get the Value corresponding to the live-in virtual register.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:89

Parameters

unsigned int Vreg

bool isExportedInst(const llvm::Value* V) const

Description

isExportedInst - Return true if the specified value is an instruction exported from its block.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:198

Parameters

const llvm::Value* V

void set(const llvm::Function& Fn,
         llvm::MachineFunction& MF,
         llvm::SelectionDAG* DAG)

Description

set - Initialize this FunctionLoweringInfo with the given Function and its associated MachineFunction.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:189

Parameters

const llvm::Function& Fn
llvm::MachineFunction& MF
llvm::SelectionDAG* DAG

void setArgumentFrameIndex(
    const llvm::Argument* A,
    int FI)

Description

setArgumentFrameIndex - Record frame index for the byval argument.

Declared at: llvm/include/llvm/CodeGen/FunctionLoweringInfo.h:274

Parameters

const llvm::Argument* A
int FI