llvm::FunctionLoweringInfo

FunctionLoweringInfo - This contains information that is global to a function that is used when lowering a region of the function.

Synopsis

Declared in <llvm/CodeGen/FunctionLoweringInfo.h>

class FunctionLoweringInfo;

Types

NameDescription
LiveOutInfo Known-bits and sign-bit info for a live-out virtual register.
StatepointRelocationRecord Helper object to track which of three possible relocation mechanisms are used for a particular value being relocated over a statepoint.

Type Aliases

NameDescription
StatepointSpillMapTy Map from relocated IR values to their statepoint relocation records.

Member Functions

NameDescription
AddLiveOutRegInfo AddLiveOutRegInfo - Adds LiveOutInfo for a register.
ComputePHILiveOutRegInfo ComputePHILiveOutRegInfo - Compute LiveOutInfo for a PHI's destination register based on the LiveOutInfo of its operands.
CreateReg Create a new virtual register of type VT.
CreateRegs CreateRegs overloads
GetLiveOutRegInfo GetLiveOutRegInfo overloads
InitializeRegForValue Allocate and record the virtual register for IR value V in ValueMap.
InvalidatePHILiveOutRegInfo InvalidatePHILiveOutRegInfo - Invalidates a PHI's LiveOutInfo, to be called when a block is visited before all of its predecessors.
clear clear - Clear out all the function-specific state. This returns this FunctionLoweringInfo to an empty state, ready to be used for a different function.
getArgumentFrameIndex getArgumentFrameIndex - Get frame index for the byval argument.
getCatchPadExceptionPointerVReg Return or create the virtual register for catchpad exception pointer CPI.
getCurrentCallSite Get the call site currently being processed, if any. Return zero if none.
getMBB Return the MachineBasicBlock corresponding to IR basic block BB.
getValueFromVirtualReg This method is called from TargetLowerinInfo::isSDNodeSourceOfDivergence to get the Value corresponding to the live-in virtual register.
isExportedInst isExportedInst - Return true if the specified value is an instruction exported from its block.
set set - Initialize this FunctionLoweringInfo with the given Function and its associated MachineFunction.
setArgumentFrameIndex setArgumentFrameIndex - Record frame index for the byval argument.
setCurrentCallSite Set the call site currently being processed.

Data Members

NameDescription
ArgDbgValues ArgDbgValues - A list of DBG_VALUE instructions created during isel for function arguments that are inserted after scheduling is completed.
BPI Optional branch-probability analysis used during lowering.
ByValArgFrameIndexMap ByValArgFrameIndexMap - Keep track of frame indices for byval arguments.
CanLowerReturn CanLowerReturn - true iff the function's return value can be lowered to registers.
CatchPadExceptionPointers Track virtual registers created for exception pointers.
CurCallSite The current call site index being processed, if any. 0 if none.
DemoteRegister DemoteRegister - if CanLowerReturn is false, DemoteRegister is a vreg allocated to hold a pointer to the hidden sret parameter.
DescribedArgs Bitvector with a bit set if corresponding argument is described in ArgDbgValues. Using arg numbers according to Argument numbering.
ExceptionPointerVirtReg Virtual registers for the exception pointer and selector in a landing pad.
ExceptionSelectorVirtReg Virtual registers for the exception pointer and selector in a landing pad.
Fn The LLVM IR function currently being lowered.
InsertPt MBB - The current insert position inside the current block.
MBB MBB - The current block.
MBBMap A mapping from LLVM basic block number to their machine block.
MF The MachineFunction being constructed for Fn.
OrigNumPHINodesToUpdate Number of PHI nodes to update when processing of this block began.
PHINodesToUpdate PHI machine instructions whose operands need updating after this block.
PreferredExtendType Record the preferred extend type (ISD::SIGN_EXTEND or ISD::ZERO_EXTEND) for a value.
PreprocessedDVRDeclares Collection of dbg_declare instructions handled after argument lowering and before ISel proper.
RegFixups RegFixups - Registers which need to be replaced after isel is done.
RegInfo Register information for the current MachineFunction.
RegsWithFixups Set of virtual registers that have pending register fixups.
SplitCSR True if part of the CSRs will be handled via explicit copies.
StatepointRelocationMaps Per-statepoint maps of relocated values to relocation records.
StatepointStackSlots Temporary stack slots used to spill values at statepoints.
StaticAllocaMap Frame indices for fixed-size entry-block allocas.
TLI Target lowering hooks for the current target.
UA Optional uniformity analysis used during divergence-aware isel.
ValueMap ValueMap - Since we emit code for the function a basic block at a time, we must remember which virtual registers hold the values for cross-basic-block values.
VirtReg2Value Inverse of ValueMap from virtual register to IR value.
VisitedBBs The set of basic blocks visited thus far by instruction selection. Indexed by basic block number.