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

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

public class RefactorPipeline
extends Object

This class is for refactoring pipelines. All methods in this class are written in an immutable way. Calling them does not mutate the arguments, or the parents of the arguments. (This is to facilitate their use in partitioning. !!! NOTE that this implies that, if you're trying to replace a stream in the stream graph, you'll need to do this manually after return from the method.


Constructor Summary
RefactorPipeline()
           
 
Method Summary
static SIRPipeline addHierarchicalChild(SIRPipeline pipe, int first, int last)
          Returns a new pipeline that is like
static SIRPipeline addHierarchicalChildren(SIRPipeline pipe, PartitionGroup partition)
          Given a pipeline
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RefactorPipeline

public RefactorPipeline()
Method Detail

addHierarchicalChild

public static SIRPipeline addHierarchicalChild(SIRPipeline pipe,
                                               int first,
                                               int last)
Returns a new pipeline that is like
pipe
but replaces children at indices first...last with a pipeline that contains those children.


addHierarchicalChildren

public static SIRPipeline addHierarchicalChildren(SIRPipeline pipe,
                                                  PartitionGroup partition)
Given a pipeline
pipe
and a partitioning
partition
of its children, returns a new pipeline that has all the elements of each partition factored into their own pipelines.