at.dms.kjc.sir.lowering
Class VectorizeEnable
java.lang.Object
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. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
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.
VectorizeEnable
public VectorizeEnable()
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:
-
Run before scheduling.
-
Only run if you can afford to increase multiplicity of filters: need to document this for user.
- 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)