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 148 of file SelectionDAGISel.cpp.


Constructor & Destructor Documentation

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

Definition at line 208 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(), I, InitializeRegForValue(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), MBB, MBBMap, MF, llvm::TargetInstrInfo::PHI, StaticAllocaMap, TLI, Ty, llvm::Value::use_empty(), ValueMap, and llvm::MVT::Vector.


Member Function Documentation

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 287 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 176 of file SelectionDAGISel.cpp.

References CreateRegForValue(), R, V, and ValueMap.

Referenced by FunctionLoweringInfo().

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

Definition at line 170 of file SelectionDAGISel.cpp.

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

Referenced by CreateRegForValue().


Member Data Documentation

Function& llvm::FunctionLoweringInfo::Fn

Definition at line 151 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo().

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

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

Definition at line 158 of file SelectionDAGISel.cpp.

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

MachineFunction& llvm::FunctionLoweringInfo::MF

Definition at line 152 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo().

SSARegMap* llvm::FunctionLoweringInfo::RegMap

Definition at line 153 of file SelectionDAGISel.cpp.

Referenced by MakeReg().

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 168 of file SelectionDAGISel.cpp.

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

TargetLowering& llvm::FunctionLoweringInfo::TLI

Definition at line 150 of file SelectionDAGISel.cpp.

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

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 163 of file SelectionDAGISel.cpp.

Referenced by FunctionLoweringInfo(), and InitializeRegForValue().


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