LLVM API Documentation

llvm::FunctionLoweringInfo Class Reference

#include <SelectionDAGBuild.h>

Collaboration diagram for llvm::FunctionLoweringInfo:

Collaboration graph
[legend]

List of all members.

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

TargetLoweringTLI
FunctionFn
MachineFunctionMF
MachineRegisterInfoRegInfo
DenseMap< const BasicBlock
*, MachineBasicBlock * > 
MBBMap
 MBBMap - A mapping from LLVM basic blocks to their machine code entry.
DenseMap< const Value *, unsignedValueMap
DenseMap< const AllocaInst *, int > StaticAllocaMap
SmallSet< Instruction *, 8 > CatchInfoLost
SmallSet< Instruction *, 8 > CatchInfoFound
std::vector< LiveOutInfoLiveOutRegInfo

Classes

struct  LiveOutInfo


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 86 of file SelectionDAGBuild.h.


Constructor & Destructor Documentation

FunctionLoweringInfo::FunctionLoweringInfo ( TargetLowering TLI  )  [explicit]

Definition at line 266 of file SelectionDAGBuild.cpp.


Member Function Documentation

void FunctionLoweringInfo::set ( Function Fn,
MachineFunction MF,
bool  EnableFastISel 
)

unsigned FunctionLoweringInfo::MakeReg ( MVT  VT  ) 

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().

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.

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().

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

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().


Member Data Documentation

Definition at line 88 of file SelectionDAGBuild.h.

Referenced by CreateRegForValue(), getCopyFromParts(), getCopyToParts(), MakeReg(), and set().

Definition at line 89 of file SelectionDAGBuild.h.

Referenced by set().

Definition at line 90 of file SelectionDAGBuild.h.

Referenced by set().

Definition at line 91 of file SelectionDAGBuild.h.

Referenced by 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().

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().


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.