CACAO
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
cacao::jit::compiler2::Matcher Class Reference

Public Types

typedef alloc::unordered_map
< Instruction *, shared_ptr
< STATE_TYPE > >::type 
InstToStateLabelTy
 
typedef alloc::list
< Instruction * >::type 
InstListTy
 
typedef alloc::set
< Instruction * >::type 
InstSetTy
 
typedef alloc::unordered_map
< int, shared_ptr< Instruction >
>::type 
ProxyMapByInstTy
 
typedef alloc::set
< Instruction::InstID >::type 
ExcludeSetTy
 
typedef alloc::unordered_map
< Instruction *, shared_ptr
< InstSetTy > >::type 
DependencyMapTy
 
typedef alloc::unordered_map
< Instruction *, shared_ptr
< ProxyMapByInstTy > >::type 
ProxyMapTy
 

Public Member Functions

 Matcher (GlobalSchedule *sched, BeginInst *BI, LoweringVisitor *LV)
 
void run ()
 

Private Member Functions

void findRoots ()
 
bool checkIsNodeExcluded (Instruction *inst)
 
InstructiongetOperand (Instruction *op, unsigned pos)
 
InstructioncreateProxy (Instruction *op, unsigned pos, Instruction *operand, bool dependency)
 
void dumpCover (Instruction *p, int goalnt, int indent)
 
void printDependencies (Instruction *inst)
 
void scheduleTrees ()
 
void lowerTree (Instruction *p, int goalnt)
 
void lowerRule (Instruction *inst, RuleId id)
 

Private Attributes

GlobalSchedulesched
 
BeginInstbasicBlock
 
LoweringVisitorLV
 
DependencyMapTy roots
 
DependencyMapTy revdeps
 
InstToStateLabelTy state_labels
 
ProxyMapTy instrProxies
 
InstSetTy phiInst
 
InstSetTy inst_in_bb
 

Static Private Attributes

static const ExcludeSetTy excluded_nodes
 

Detailed Description

Definition at line 55 of file Matcher.hpp.

Member Typedef Documentation

Definition at line 65 of file Matcher.hpp.

Definition at line 64 of file Matcher.hpp.

Definition at line 61 of file Matcher.hpp.

Definition at line 62 of file Matcher.hpp.

Definition at line 60 of file Matcher.hpp.

Definition at line 63 of file Matcher.hpp.

Definition at line 66 of file Matcher.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::Matcher::Matcher ( GlobalSchedule sched,
BeginInst BI,
LoweringVisitor LV 
)
inline

Definition at line 68 of file Matcher.hpp.

Member Function Documentation

bool cacao::jit::compiler2::Matcher::checkIsNodeExcluded ( Instruction inst)
private

Definition at line 157 of file Matcher.cpp.

Instruction * cacao::jit::compiler2::Matcher::createProxy ( Instruction op,
unsigned  pos,
Instruction operand,
bool  dependency 
)
private

Definition at line 195 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::dumpCover ( Instruction p,
int  goalnt,
int  indent 
)
private

Definition at line 219 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::findRoots ( )
private

Definition at line 89 of file Matcher.cpp.

Instruction * cacao::jit::compiler2::Matcher::getOperand ( Instruction op,
unsigned  pos 
)
private

Definition at line 161 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::lowerRule ( Instruction inst,
RuleId  id 
)
private

Definition at line 311 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::lowerTree ( Instruction p,
int  goalnt 
)
private

Definition at line 296 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::printDependencies ( Instruction inst)
private

Definition at line 234 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::run ( )

Definition at line 63 of file Matcher.cpp.

void cacao::jit::compiler2::Matcher::scheduleTrees ( )
private

Definition at line 247 of file Matcher.cpp.

Field Documentation

BeginInst* cacao::jit::compiler2::Matcher::basicBlock
private

Definition at line 75 of file Matcher.hpp.

const Matcher::ExcludeSetTy cacao::jit::compiler2::Matcher::excluded_nodes
staticprivate

Definition at line 85 of file Matcher.hpp.

InstSetTy cacao::jit::compiler2::Matcher::inst_in_bb
private

Definition at line 83 of file Matcher.hpp.

ProxyMapTy cacao::jit::compiler2::Matcher::instrProxies
private

Definition at line 81 of file Matcher.hpp.

LoweringVisitor* cacao::jit::compiler2::Matcher::LV
private

Definition at line 76 of file Matcher.hpp.

InstSetTy cacao::jit::compiler2::Matcher::phiInst
private

Definition at line 82 of file Matcher.hpp.

DependencyMapTy cacao::jit::compiler2::Matcher::revdeps
private

Definition at line 78 of file Matcher.hpp.

DependencyMapTy cacao::jit::compiler2::Matcher::roots
private

Definition at line 77 of file Matcher.hpp.

GlobalSchedule* cacao::jit::compiler2::Matcher::sched
private

Definition at line 74 of file Matcher.hpp.

InstToStateLabelTy cacao::jit::compiler2::Matcher::state_labels
private

Definition at line 80 of file Matcher.hpp.


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