at.dms.kjc.sir.lowering.partition
Class GreedierPartitioner

java.lang.Object
  extended by at.dms.kjc.sir.lowering.partition.GreedierPartitioner

public class GreedierPartitioner
extends Object

Greedier partitioner that can switch back and forth between fissing and fusing depending on what's more appropriate. Considers any adjacent fusable filters within same container for fusion. Cannot consider adjacent filters in graph but in different containers since graph needs to remain structured at this stage but it would be nice if this were supported at some point.

Author:
jasperln

Constructor Summary
GreedierPartitioner(SIRStream str, WorkEstimate work, int numTiles, boolean joinersNeedTiles)
          Construct GreedierPartitioner.
 
Method Summary
 SIRStream toplevel()
          This is the toplevel call for doing partitioning.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GreedierPartitioner

public GreedierPartitioner(SIRStream str,
                           WorkEstimate work,
                           int numTiles,
                           boolean joinersNeedTiles)
Construct GreedierPartitioner.

Parameters:
str - The toplevel SIRStream.
work - WorkEstimate to drive fusion.
numTiles - Target number of tiles.
joinersNeedTiles - Indicates if joiners require a tile of thier own. (Needed on some backends.)
Method Detail

toplevel

public SIRStream toplevel()
This is the toplevel call for doing partitioning. Returns the partitioned stream.