at.dms.kjc.slicegraph
Class DataFlowOrder

java.lang.Object
  extended by at.dms.kjc.slicegraph.DataFlowOrder

public class DataFlowOrder
extends Object

This class generates a data flow schedule of the slice graph (but does not handle feedbackloops). More specifically, in the traversal, all ancestors of a node are guaranteed to appear before the node.

Author:
mgordon

Constructor Summary
DataFlowOrder()
           
 
Method Summary
static LinkedList<Slice> getTraversal(Slice[] topSlices)
          Generate a list of slices in data-flow order.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataFlowOrder

public DataFlowOrder()
Method Detail

getTraversal

public static LinkedList<Slice> getTraversal(Slice[] topSlices)
Generate a list of slices in data-flow order.

TODO: need to add markers for feedbackloops in original graph. Order would be: (1) fake node with just a preWork to push enqueued. (2) The body in order. (3) The loop in order. (one (bad) model would be DiscoverSchedule.)

Parameters:
topSlices - The slice forest.
Returns:
A LinkedList of slices in data-flow order