at.dms.kjc.sir.lowering
Class VectorizeEnable

java.lang.Object
  extended by at.dms.kjc.sir.lowering.VectorizeEnable

public class VectorizeEnable
extends Object

Mung code to allow naive vectorization. Note: static methods in this class are not designed to be re-entrant.

Author:
Allyn Dimock

Field Summary
static boolean debugging
          Set to true to list sequences of vectorizable filters before fusion and individual vectorizable filters after fusion.
static boolean vectorsOverTapesDebugged
          Keep from producing vectors over tapes until I can debug.
 
Constructor Summary
VectorizeEnable()
           
 
Method Summary
static SIRStream vectorizeEnable(SIRStream str, Map<SIROperator,Integer> partitionTable)
          Perform naive vectorization on eligible filters in a stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debugging

public static boolean debugging
Set to true to list sequences of vectorizable filters before fusion and individual vectorizable filters after fusion.


vectorsOverTapesDebugged

public static boolean vectorsOverTapesDebugged
Keep from producing vectors over tapes until I can debug.

Constructor Detail

VectorizeEnable

public VectorizeEnable()
Method Detail

vectorizeEnable

public static SIRStream vectorizeEnable(SIRStream str,
                                        Map<SIROperator,Integer> partitionTable)
Perform naive vectorization on eligible filters in a stream.
Causes subgraphs and pipeline segments of vectorizable filters to be fused if filters after the first do not peek. Causes vectorizable filters to be executed a multiple of 4 times per steady state.
Vectorization should be run after partitioning, but before fusion or (final) scheduling.
Notes:

Parameters:
str - the Stream to be munged.
partitionTable - partition table so filters in different partitions are not fused. Not currently checked!
Returns:
modified str (str replaced with modified version in parent if any)