OpenASIP  2.0
Public Member Functions | List of all members
DDGPass Class Reference

#include <DDGPass.hh>

Inheritance diagram for DDGPass:
Inheritance graph
Collaboration diagram for DDGPass:
Collaboration graph

Public Member Functions

 DDGPass (InterPassData &data)
 
virtual ~DDGPass ()
 
virtual int handleDDG (DataDependenceGraph &ddg, SimpleResourceManager &rm, const TTAMachine::Machine &targetMachine, int minCycle=0, bool testOnly=false)
 
virtual int handleLoopDDG (DataDependenceGraph &, SimpleResourceManager &, const TTAMachine::Machine &, int tripCount, SimpleResourceManager *prologRM=NULL, bool testOnly=false)
 
- Public Member Functions inherited from SchedulerPass
 SchedulerPass (InterPassData &data)
 
virtual ~SchedulerPass ()
 
InterPassDatainterPassData ()
 
virtual std::string shortDescription () const =0
 
virtual std::string longDescription () const
 

Detailed Description

Definition at line 51 of file DDGPass.hh.

Constructor & Destructor Documentation

◆ DDGPass()

DDGPass::DDGPass ( InterPassData data)

Constructor.

Definition at line 42 of file DDGPass.cc.

42  :
43  SchedulerPass(data) {
44 }

◆ ~DDGPass()

DDGPass::~DDGPass ( )
virtual

Destructor.

Definition at line 49 of file DDGPass.cc.

49  {
50 }

Member Function Documentation

◆ handleDDG()

int DDGPass::handleDDG ( DataDependenceGraph ddg,
SimpleResourceManager rm,
const TTAMachine::Machine targetMachine,
int  minCycle = 0,
bool  testOnly = false 
)
virtual

Handles a given DDG.

Parameters
ddgDDG to handle
rmResource manager that is to be used.
machineThe target machine if any. (NullMachine::instance() if target machine is irrelevant).
Exceptions
Incase handling is unsuccesful for any reason (basicBlock might still get modified).

Reimplemented in BasicBlockScheduler, BF2Scheduler, and BUBasicBlockScheduler.

Definition at line 63 of file DDGPass.cc.

65  {
66  // just to avoid warnings -- need to keep the argument names for
67  // Doxygen comments ;)
68  ddg.nodeCount();
69  rm.largestCycle();
70  targetMachine.machineTester();
71  abortWithError("Should never call this.");
72  minCycle++;
73  return INT_MAX;
74 }

References abortWithError, SimpleResourceManager::largestCycle(), TTAMachine::Machine::machineTester(), and BoostGraph< GraphNode, GraphEdge >::nodeCount().

Here is the call graph for this function:

◆ handleLoopDDG()

int DDGPass::handleLoopDDG ( DataDependenceGraph ,
SimpleResourceManager ,
const TTAMachine::Machine ,
int  tripCount,
SimpleResourceManager prologRM = NULL,
bool  testOnly = false 
)
virtual

For BasicBlockPass to be able to call this method...

Reimplemented in BUBasicBlockScheduler, BasicBlockScheduler, and BF2Scheduler.

Definition at line 77 of file DDGPass.cc.

79  {
80  return -1;
81 }

The documentation for this class was generated from the following files:
SimpleResourceManager::largestCycle
virtual int largestCycle() const override
Definition: SimpleResourceManager.cc:463
SchedulerPass::SchedulerPass
SchedulerPass(InterPassData &data)
Definition: SchedulerPass.cc:40
abortWithError
#define abortWithError(message)
Definition: Application.hh:72
TTAMachine::Machine::machineTester
MachineTester & machineTester() const
Definition: Machine.cc:671
BoostGraph::nodeCount
int nodeCount() const