LLVM API Documentation

llvm::FunctionLoweringInfo Class Reference

Collaboration diagram for llvm::FunctionLoweringInfo:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 FunctionLoweringInfo (TargetLowering &TLI, Function &Fn, MachineFunction &MF)
unsigned MakeReg (MVT::ValueType VT)
unsigned CreateRegForValue (const Value *V)
unsigned InitializeRegForValue (const Value *V)

Public Attributes

TargetLoweringTLI
FunctionFn
MachineFunctionMF
SSARegMapRegMap
std::map< const BasicBlock *,
MachineBasicBlock * > 
MBBMap
 MBBMap - A mapping from LLVM basic blocks to their machine code entry.
std::map< const Value *, unsigned > ValueMap
std::map< const AllocaInst *,
int > 
StaticAllocaMap

Detailed Description

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

Definition at line 155 of file SelectionDAGISel.cpp.


Constructor & Destructor Documentation

FunctionLoweringInfo::FunctionLoweringInfo ( TargetLowering TLI,
Function Fn,
MachineFunction MF 
)

Definition at line 215 of file SelectionDAGISel.cpp.

References AI, Align, llvm::Function::arg_begin(), llvm::Function::arg_end(), BB, llvm::Function::begin(), llvm::BuildMI(), llvm::MachineFrameInfo::CreateStackObject(), E, llvm::Function::end(), Fn, llvm::MachineFunction::getBasicBlockList(), llvm::MachineFunction::getFrameInfo(), llvm::TargetLowering::getNumElements(), llvm::User::getNumOperands(), llvm::TargetLowering::getPackedTypeBreakdown(), llvm::TargetLowering::getTargetData(), llvm::Value::getType(), llvm::TargetData::getTypeAlignment(), llvm::TargetData::getTypeSize(), llvm::TargetLowering::getValueType(), InitializeRegForValue(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), MBB, MBBMap, MF, llvm::TargetInstrInfo::PHI, StaticAllocaMap, TLI, Ty, llvm::Value::use_empty(), and llvm::MVT::Vector.


Member Function Documentation

unsigned llvm::FunctionLoweringInfo::MakeReg ( MVT::ValueType  VT  )  [inline]

Definition at line 177 of file SelectionDAGISel.cpp.

References llvm::SSARegMap::createVirtualRegister(), llvm::TargetLowering::getRegClassFor(), RegMap, and TLI.

Referenced by CreateRegForValue(), and llvm::SelectionDAGLowering::visitSwitch().

unsigned FunctionLoweringInfo::CreateRegForValue ( const Value V  ) 

CreateRegForValue - Allocate the appropriate number of virtual registers of the correctly promoted or expanded types. Assign these registers consecutive vreg numbers and return the first assigned number.

Definition at line 294 of file SelectionDAGISel.cpp.

References llvm::SequentialType::getElementType(), llvm::TargetLowering::getNumElements(), llvm::PackedType::getNumElements(), llvm::TargetLowering::getTypeToTransformTo(), llvm::TargetLowering::getValueType(), llvm::MVT::getVectorType(), llvm::TargetLowering::isTypeLegal(), MakeReg(), R, Reg, TLI, V, and llvm::MVT::Vector.

Referenced by InitializeRegForValue().

unsigned llvm::FunctionLoweringInfo::InitializeRegForValue ( const Value V  )  [inline]

Definition at line 183 of file SelectionDAGISel.cpp.

References CreateRegForValue(), R, and V.

Referenced by FunctionLoweringInfo().


Member Data Documentation

TargetLowering& llvm::FunctionLoweringInfo::TLI

Definition at line 157 of file SelectionDAGISel.cpp.

Referenced by CreateRegForValue(), FunctionLoweringInfo(), and MakeReg().

Function& llvm::FunctionLoweringInfo::Fn

Definition at line 158 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo().

MachineFunction& llvm::FunctionLoweringInfo::MF

Definition at line 159 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo().

SSARegMap* llvm::FunctionLoweringInfo::RegMap

Definition at line 160 of file SelectionDAGISel.cpp.

Referenced by MakeReg().

std::map<const BasicBlock*, MachineBasicBlock *> llvm::FunctionLoweringInfo::MBBMap

MBBMap - A mapping from LLVM basic blocks to their machine code entry.

Definition at line 165 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo(), llvm::SelectionDAGLowering::visitBr(), and llvm::SelectionDAGLowering::visitSwitch().

std::map<const Value*, unsigned> llvm::FunctionLoweringInfo::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.

Definition at line 170 of file SelectionDAGISel.cpp.

std::map<const AllocaInst*, int> llvm::FunctionLoweringInfo::StaticAllocaMap

StaticAllocaMap - Keep track of frame indices for fixed sized allocas in the entry block. This allows the allocas to be efficiently referenced anywhere in the function.

Definition at line 175 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo(), and llvm::SelectionDAGLowering::visitAlloca().


The documentation for this class was generated from the following file: