LLVM API Documentation
#include <SelectionDAGBuild.h>

Public Member Functions | |
| FunctionLoweringInfo (TargetLowering &TLI) | |
| void | set (Function &Fn, MachineFunction &MF, bool EnableFastISel) |
| unsigned | MakeReg (MVT VT) |
| bool | isExportedInst (const Value *V) |
| unsigned | CreateRegForValue (const Value *V) |
| unsigned | InitializeRegForValue (const Value *V) |
| void | clear () |
Public Attributes | |
| TargetLowering & | TLI |
| Function * | Fn |
| MachineFunction * | MF |
| MachineRegisterInfo * | RegInfo |
| DenseMap< const BasicBlock *, MachineBasicBlock * > | MBBMap |
| MBBMap - A mapping from LLVM basic blocks to their machine code entry. | |
| DenseMap< const Value *, unsigned > | ValueMap |
| DenseMap< const AllocaInst *, int > | StaticAllocaMap |
| SmallSet< Instruction *, 8 > | CatchInfoLost |
| SmallSet< Instruction *, 8 > | CatchInfoFound |
| std::vector< LiveOutInfo > | LiveOutRegInfo |
Classes | |
| struct | LiveOutInfo |
Definition at line 86 of file SelectionDAGBuild.h.
| FunctionLoweringInfo::FunctionLoweringInfo | ( | TargetLowering & | TLI | ) | [explicit] |
Definition at line 266 of file SelectionDAGBuild.cpp.
| void FunctionLoweringInfo::set | ( | Function & | Fn, | |
| MachineFunction & | MF, | |||
| bool | EnableFastISel | |||
| ) |
set - Initialize this FunctionLoweringInfo with the given Function and its associated MachineFunction.
Definition at line 270 of file SelectionDAGBuild.cpp.
References AI, Align, llvm::Function::arg_begin(), llvm::Function::arg_end(), BB, llvm::Function::begin(), llvm::BuildMI(), ComputeValueVTs(), llvm::MachineFunction::CreateMachineBasicBlock(), llvm::MachineFrameInfo::CreateStackObject(), llvm::dyn_cast(), E, llvm::Function::end(), Fn, llvm::TargetInstrInfo::get(), llvm::TargetData::getABITypeSize(), llvm::AllocationInst::getAlignment(), llvm::AllocationInst::getAllocatedType(), llvm::AllocationInst::getArraySize(), llvm::MachineFunction::getFrameInfo(), llvm::TargetMachine::getInstrInfo(), llvm::TargetLowering::getNumRegisters(), llvm::TargetData::getPrefTypeAlignment(), llvm::MachineFunction::getRegInfo(), llvm::MachineFunction::getTarget(), llvm::TargetLowering::getTargetData(), llvm::Value::getType(), I, InitializeRegForValue(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), MBB, MBBMap, MF, llvm::TargetInstrInfo::PHI, llvm::MachineFunction::push_back(), RegInfo, llvm::SmallVectorImpl< T >::size(), StaticAllocaMap, TII, TLI, Ty, llvm::Value::use_empty(), and VT.
Referenced by llvm::SelectionDAGISel::runOnFunction().
Definition at line 340 of file SelectionDAGBuild.cpp.
References llvm::MachineRegisterInfo::createVirtualRegister(), llvm::TargetLowering::getRegClassFor(), RegInfo, and TLI.
Referenced by CreateRegForValue(), llvm::SelectionDAGLowering::visitBitTestHeader(), and llvm::SelectionDAGLowering::visitJumpTableHeader().
| bool llvm::FunctionLoweringInfo::isExportedInst | ( | const Value * | V | ) | [inline] |
isExportedInst - Return true if the specified value is an instruction exported from its block.
Definition at line 122 of file SelectionDAGBuild.h.
Referenced by llvm::SelectionDAGLowering::ExportFromCurrentBlock(), and llvm::SelectionDAGLowering::isExportableFromCurrentBlock().
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.
In the case that the given value has struct or array type, this function will assign registers for each member or element.
Definition at line 351 of file SelectionDAGBuild.cpp.
References ComputeValueVTs(), llvm::TargetLowering::getNumRegisters(), llvm::TargetLowering::getRegisterType(), llvm::Value::getType(), MakeReg(), R, llvm::SmallVectorImpl< T >::size(), and TLI.
Referenced by InitializeRegForValue().
Definition at line 128 of file SelectionDAGBuild.h.
References CreateRegForValue(), and R.
Referenced by llvm::SelectionDAGLowering::ExportFromCurrentBlock(), and set().
| void llvm::FunctionLoweringInfo::clear | ( | ) | [inline] |
clear - Clear out all the function-specific state. This returns this FunctionLoweringInfo to an empty state, ready to be used for a different function.
Definition at line 147 of file SelectionDAGBuild.h.
References CatchInfoFound, CatchInfoLost, LiveOutRegInfo, MBBMap, and StaticAllocaMap.
Referenced by llvm::SelectionDAGISel::runOnFunction().
Definition at line 88 of file SelectionDAGBuild.h.
Referenced by CreateRegForValue(), getCopyFromParts(), getCopyToParts(), MakeReg(), and set().
MBBMap - A mapping from LLVM basic blocks to their machine code entry.
Definition at line 101 of file SelectionDAGBuild.h.
Referenced by clear(), copyCatchInfo(), llvm::SelectionDAGISel::runOnFunction(), and set().
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 106 of file SelectionDAGBuild.h.
Referenced by llvm::SelectionDAGLowering::getValue().
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 111 of file SelectionDAGBuild.h.
Referenced by clear(), llvm::SelectionDAGLowering::getValue(), and set().
Definition at line 114 of file SelectionDAGBuild.h.
Referenced by clear(), and llvm::SelectionDAGISel::runOnFunction().
Definition at line 115 of file SelectionDAGBuild.h.
Referenced by clear(), copyCatchInfo(), and llvm::SelectionDAGISel::runOnFunction().
| std::vector<LiveOutInfo> llvm::FunctionLoweringInfo::LiveOutRegInfo |
LiveOutRegInfo - Information about live out vregs, indexed by their register number offset by 'FirstVirtualRegister'.
Definition at line 142 of file SelectionDAGBuild.h.
Referenced by clear(), and llvm::RegsForValue::getCopyFromRegs().
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.