OpenASIP  2.0
Public Member Functions | List of all members
MoveNodeSelector Class Referenceabstract

#include <MoveNodeSelector.hh>

Inheritance diagram for MoveNodeSelector:
Inheritance graph
Collaboration diagram for MoveNodeSelector:
Collaboration graph

Public Member Functions

 MoveNodeSelector ()
 
virtual ~MoveNodeSelector ()
 
virtual MoveNodeGroup candidates ()=0
 
virtual void notifyScheduled (MoveNode &node)=0
 
virtual void mightBeReady (MoveNode &node)=0
 

Detailed Description

Move node selector is an abstraction to ready operation list in a list scheduler.

MoveNodeSelectors are responsible in maintaining the ready list and updating it according to scheduling progress.

Definition at line 45 of file MoveNodeSelector.hh.

Constructor & Destructor Documentation

◆ MoveNodeSelector()

MoveNodeSelector::MoveNodeSelector ( )

Constructor.

Definition at line 39 of file MoveNodeSelector.cc.

39  {
40 }

◆ ~MoveNodeSelector()

MoveNodeSelector::~MoveNodeSelector ( )
virtual

Destructor.

Definition at line 45 of file MoveNodeSelector.cc.

45  {
46 }

Member Function Documentation

◆ candidates()

MoveNodeGroup MoveNodeSelector::candidates ( )
pure 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.

Implemented in DDGMoveNodeSelector< PQType >, CriticalPathBBMoveNodeSelector, BUMoveNodeSelector, and SequentialMoveNodeSelector.

Definition at line 58 of file MoveNodeSelector.cc.

58  {
59  return MoveNodeGroup();
60 }

◆ mightBeReady()

void MoveNodeSelector::mightBeReady ( MoveNode node)
pure 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

Implemented in DDGMoveNodeSelector< PQType >, CriticalPathBBMoveNodeSelector, BUMoveNodeSelector, and SequentialMoveNodeSelector.

Definition at line 82 of file MoveNodeSelector.cc.

82  {
83  assert(false && "Should never be called. Here just to avoid warning.");
84 }

References assert.

Referenced by CycleLookBackSoftwareBypasser::removeDeadResults(), and RegisterRenamer::renameLiveRange().

◆ notifyScheduled()

void MoveNodeSelector::notifyScheduled ( MoveNode node)
pure 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.

Implemented in DDGMoveNodeSelector< PQType >, CriticalPathBBMoveNodeSelector, BUMoveNodeSelector, and SequentialMoveNodeSelector.

Definition at line 70 of file MoveNodeSelector.cc.

70  {
71  assert(false && "Should never be called. Here just to avoid warning.");
72 }

References assert.

Referenced by BasicBlockScheduler::notifyScheduled().


The documentation for this class was generated from the following files:
assert
#define assert(condition)
Definition: Application.hh:86
MoveNodeGroup
Definition: MoveNodeGroup.hh:48