OpenASIP  2.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DDGMoveNodeSelector< PQType > Class Template Reference

#include <DDGMoveNodeSelector.hh>

Inheritance diagram for DDGMoveNodeSelector< PQType >:
Inheritance graph
Collaboration diagram for DDGMoveNodeSelector< PQType >:
Collaboration graph

Public Member Functions

 DDGMoveNodeSelector (TTAProgram::BasicBlock &bb, const TTAMachine::Machine &machine)
 
 DDGMoveNodeSelector (DataDependenceGraph &bigDDG, TTAProgram::BasicBlock &bb, const TTAMachine::Machine &machine)
 
 DDGMoveNodeSelector (DataDependenceGraph &ddg, const TTAMachine::Machine &machine)
 
virtual ~DDGMoveNodeSelector ()
 
virtual MoveNodeGroup candidates ()
 
virtual void notifyScheduled (MoveNode &node)
 
virtual DataDependenceGraphdataDependenceGraph ()
 
void mightBeReady (MoveNode &node)
 
- Public Member Functions inherited from MoveNodeSelector
 MoveNodeSelector ()
 
virtual ~MoveNodeSelector ()
 

Private Member Functions

bool isReadyToBeScheduled (MoveNode &node) const
 
void initializeReadylist ()
 Initializes ready list from nodes that are ready. More...
 

Private Attributes

DataDependenceGraphddg_
 The data dependence graph built from the basic block. More...
 
PQType readyList_
 The prioritized ready list. More...
 
bool ddgOwned_
 

Detailed Description

template<class PQType>
class DDGMoveNodeSelector< PQType >

Selects move nodes from a basic block and prioritizes move nodes on the critical path of the data dependence graph.

Definition at line 72 of file DDGMoveNodeSelector.hh.

Constructor & Destructor Documentation

◆ DDGMoveNodeSelector() [1/3]

template<class PQType >
DDGMoveNodeSelector< PQType >::DDGMoveNodeSelector ( TTAProgram::BasicBlock bb,
const TTAMachine::Machine machine 
)

◆ DDGMoveNodeSelector() [2/3]

template<class PQType >
DDGMoveNodeSelector< PQType >::DDGMoveNodeSelector ( DataDependenceGraph bigDDG,
TTAProgram::BasicBlock bb,
const TTAMachine::Machine machine 
)

◆ DDGMoveNodeSelector() [3/3]

template<class PQType >
DDGMoveNodeSelector< PQType >::DDGMoveNodeSelector ( DataDependenceGraph ddg,
const TTAMachine::Machine machine 
)

◆ ~DDGMoveNodeSelector()

template<class PQType >
virtual DDGMoveNodeSelector< PQType >::~DDGMoveNodeSelector ( )
virtual

Member Function Documentation

◆ candidates()

template<class PQType >
virtual MoveNodeGroup DDGMoveNodeSelector< PQType >::candidates ( )
virtual

Returns a group of move nodes which should be scheduled next.

By default returns an empty group. A non-empty group is guaranteed to contain at least one unscheduled move, but not all of them necessarily are.

Returns
Move node group.

Implements MoveNodeSelector.

◆ dataDependenceGraph()

template<class PQType >
virtual DataDependenceGraph& DDGMoveNodeSelector< PQType >::dataDependenceGraph ( )
virtual

◆ initializeReadylist()

template<class PQType >
void DDGMoveNodeSelector< PQType >::initializeReadylist ( )
private

Initializes ready list from nodes that are ready.

◆ isReadyToBeScheduled()

template<class PQType >
bool DDGMoveNodeSelector< PQType >::isReadyToBeScheduled ( MoveNode node) const
private

◆ mightBeReady()

template<class PQType >
void DDGMoveNodeSelector< PQType >::mightBeReady ( MoveNode node)
virtual

This should be called by the client when some incoming dependence to a moveNode is removed.

Parameters
nodeNode which has lost some incoming dependence

Implements MoveNodeSelector.

◆ notifyScheduled()

template<class PQType >
virtual void DDGMoveNodeSelector< PQType >::notifyScheduled ( MoveNode node)
virtual

This should be called by the client as soon as a MoveNode is scheduled in order to update the internal state of the selector.

Parameters
nodeThe scheduled MoveNode.

Implements MoveNodeSelector.

Member Data Documentation

◆ ddg_

template<class PQType >
DataDependenceGraph* DDGMoveNodeSelector< PQType >::ddg_
private

The data dependence graph built from the basic block.

Definition at line 98 of file DDGMoveNodeSelector.hh.

◆ ddgOwned_

template<class PQType >
bool DDGMoveNodeSelector< PQType >::ddgOwned_
private

Definition at line 102 of file DDGMoveNodeSelector.hh.

◆ readyList_

template<class PQType >
PQType DDGMoveNodeSelector< PQType >::readyList_
private

The prioritized ready list.

Definition at line 100 of file DDGMoveNodeSelector.hh.


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