int createMe(Galaxy& g, int selfLoopFlag = 0);Is the main routine to create and initialize the APEG of the argument Galaxy. Using
createMemethod of the ExpandedGraph class, it creates an APEG. After that, it resets the busy flags of the ParNodes, and calls
virtual int initializeGraph();This is a protected method. It performs 4 main tasks as follows. (1) Call a protected method
removeArcsWithDelayto remove the arcs with delays, and to store the source and the destination nodes of each removed arc into the list of NodePairs . The list is a protected member, named
nodePairsof SequentialList class.
void removeArcsWithDelay();(2) For each node, compute the static level (
StaticLevel)by calling a protected method
int SetNodeSL(ParNode* n);(3) Sum the execution times of all nodes and save the total execution time to a protected member
int ExecTotal;(4) Assign the larger static level than any other nodes to the nodes at the wormhole boundary. This let the parallel scheduler schedules the nodes at the wormhole boundary first.
EGNode* newNode(DataFlowStar*, int);Redefines the virtual method to create a ParNode associated with the given invocation of the argument star.
ostream* logstrm;This is a stream object for logging information.
EGNodeList runnableNodes;The list of runnable (or fireable) nodes are stored in
runnableNodes.The above method is to initialize the list with all root ParNodes.
int getExecTotal();Returns the total execution time of the graph and the original graph.
void setLog(ostream* l);Sets the stream object
void replenish(int flag);This method initialize the temporary ancestor list and descendant list of all ParNodes in the graph.
void sortedInsert(EGNodeList& l, ParNode* n, int flag);Insert a ParNode,
n,into the EGNodeList,
l,in sorted order. It sorts nodes of highest
flag= 1, or lowest
void restoreHiddenGates();This method restores the hidden EGGates from
removeArcsWithDelaymethod to the initial list, either
descendantsof the parent node.
int pairDistance();After scheduling is completed, it is supposed to return the maximum scheduling distance between node pairs in
nodePairslist. Currently, however, it just returns -1, indicating the information is not available.
~ParGraph();The destructor initializes the
NodePair(ParNode* src, ParNode* dest);The constructor requires two arguments of the source and the destination nodes, while the next two methods return the node.