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
- public void AddLiveOutRegInfo(unsigned int Reg, unsigned int NumSignBits, const llvm::KnownBits & Known)
- public void ComputePHILiveOutRegInfo(const llvm::PHINode *)
- public unsigned int CreateReg(llvm::MVT VT, bool isDivergent = false)
- public unsigned int CreateRegs(const llvm::Value * V)
- public unsigned int CreateRegs(llvm::Type * Ty, bool isDivergent = false)
- public const llvm::FunctionLoweringInfo::LiveOutInfo * GetLiveOutRegInfo(unsigned int Reg)
- public const llvm::FunctionLoweringInfo::LiveOutInfo * GetLiveOutRegInfo(unsigned int Reg, unsigned int BitWidth)
- public unsigned int InitializeRegForValue(const llvm::Value * V)
- public void InvalidatePHILiveOutRegInfo(const llvm::PHINode * PN)
- public void clear()
- public int getArgumentFrameIndex(const llvm::Argument * A)
- public unsigned int getCatchPadExceptionPointerVReg(const llvm::Value * CPI, const llvm::TargetRegisterClass * RC)
- public const llvm::Value * getValueFromVirtualReg(unsigned int Vreg)
- public bool isExportedInst(const llvm::Value * V) const
- public void set(const llvm::Function & Fn, llvm::MachineFunction & MF, llvm::SelectionDAG * DAG)
- public void setArgumentFrameIndex(const llvm::Argument * A, int FI)
Methods
¶void AddLiveOutRegInfo(
unsigned int Reg,
unsigned int NumSignBits,
const llvm::KnownBits& Known)
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*)
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)
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)
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)
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)
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)
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)
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)
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()
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)
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)
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)
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
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)
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)
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