at.dms.kjc.spacetime
Class AddBuffering

java.lang.Object
  extended by at.dms.kjc.spacetime.AddBuffering

public class AddBuffering
extends Object

After synch removal and conversion from the stream graph to the slice graph, input slice nodes (joiners) or output slice nodes (splitter) may not execute an integral number of times.

For an input slice node, each incoming edge may not have the same multiplicity and/or for an output slice node, the upstream filter may push a number of nodes that does not divide evenly by the total weights of the edges of the output node.

The SpaceTime compiler assumes that there are no items buffered at input slice nodes or output slice nodes, so to execute an integral number of times. To force this, this pass adds buffered at a slice by adding an identity filter to the end of a slice. It will balance the incoming edges of an input slice node, and/or make sure the output slice node executes an integral number of times.

Author:
mgordon

Method Summary
static void doit(Partitioner spaceTime, boolean limitTiles, int totalTiles)
          Fix the input slice node and output slice node multiplicity to be integral in the init stage.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

doit

public static void doit(Partitioner spaceTime,
                        boolean limitTiles,
                        int totalTiles)
Fix the input slice node and output slice node multiplicity to be integral in the init stage.

Parameters:
spaceTime - The space time schedule.