LLVM API Documentation
#include <SelectionDAGBuild.h>
Public Member Functions | |
| FunctionLoweringInfo (TargetLowering &TLI) | |
| void | set (Function &Fn, MachineFunction &MF, SelectionDAG &DAG, 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 269 of file SelectionDAGBuild.cpp.
| void FunctionLoweringInfo::set | ( | Function & | Fn, | |
| MachineFunction & | MF, | |||
| SelectionDAG & | DAG, | |||
| bool | EnableFastISel | |||
| ) |
set - Initialize this FunctionLoweringInfo with the given Function and its associated MachineFunction.
Definition at line 273 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::Intrinsic::dbg_func_start, llvm::Intrinsic::dbg_stoppoint, DW, llvm::dyn_cast(), E, llvm::Function::end(), F, Fn, llvm::TargetInstrInfo::get(), llvm::DebugLoc::get(), llvm::AllocationInst::getAlignment(), llvm::AllocationInst::getAllocatedType(), llvm::AllocationInst::getArraySize(), llvm::DbgStopPointInst::getColumn(), llvm::DIGlobal::getCompileUnit(), llvm::DbgStopPointInst::getContext(), llvm::DICompileUnit::getDirectory(), llvm::SelectionDAG::getDwarfWriter(), llvm::DICompileUnit::getFilename(), llvm::MachineFunction::getFrameInfo(), llvm::TargetMachine::getInstrInfo(), llvm::DbgStopPointInst::getLine(), llvm::DIGlobal::getLineNumber(), llvm::TargetLowering::getNumRegisters(), llvm::MachineFunction::getOrCreateDebugLocID(), llvm::TargetData::getPrefTypeAlignment(), llvm::MachineFunction::getRegInfo(), llvm::DbgFuncStartInst::getSubprogram(), llvm::MachineFunction::getTarget(), llvm::TargetLowering::getTargetData(), llvm::Value::getType(), llvm::TargetData::getTypePaddedSize(), InitializeRegForValue(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), MBB, MBBMap, MF, llvm::TargetInstrInfo::PHI, llvm::MachineFunction::push_back(), llvm::DwarfWriter::RecordSource(), RegInfo, llvm::SmallVectorImpl< T >::size(), StaticAllocaMap, TII, TLI, Ty, llvm::Value::use_empty(), llvm::DwarfWriter::ValidDebugInfo(), and VT.
Referenced by llvm::SelectionDAGISel::runOnFunction().
Definition at line 389 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 123 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 400 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 129 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 148 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 102 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 107 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 112 of file SelectionDAGBuild.h.
Referenced by clear(), llvm::SelectionDAGLowering::getValue(), and set().
Definition at line 115 of file SelectionDAGBuild.h.
Referenced by clear(), and llvm::SelectionDAGISel::runOnFunction().
Definition at line 116 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 143 of file SelectionDAGBuild.h.
Referenced by clear(), and llvm::RegsForValue::getCopyFromRegs().