LLVM API Documentation
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 | |
TargetLowering & | TLI |
Function & | Fn |
MachineFunction & | MF |
SSARegMap * | RegMap |
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 |
Definition at line 155 of file SelectionDAGISel.cpp.
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.
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().
Definition at line 157 of file SelectionDAGISel.cpp.
Referenced by CreateRegForValue(), FunctionLoweringInfo(), and 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().