at.dms.kjc.sir.lowering
Class Vectorize
java.lang.Object
at.dms.kjc.sir.lowering.Vectorize
public class Vectorize
- extends Object
Transform methods for a filter to use vector types as appropriate.
- Identify vectors: values from peek/pop, values to push.
- Introduce new tmp for peek/pop
- Replace peek of data with N peeks into tmp.
- Replace pop of data with pop and N-1 peeks into tmp.
- Replace push of data with and N pokes.
- Introduce correction for pokes at end of method.
(need to buffer pokes if pushing involves communication,
just need to update a pointer if output to a buffer.)
- For fields needing vector values: calculate scalar then
widen into a new variable.
Known preconditions: no vector type will be be required
for I/O, for branch condition, for array or peek offset
calculation, as per Vectorizable.vectorizable(SIRFilter)
Arguments to peeks, pushes are purely functional: no side effects.
In fact they are either constant, local variable access, field access or array access.
Limitation: Initializing arrays in fields not handled at all.
- Author:
- Allyn Dimock
Field Summary |
static boolean |
debugging
print out names of variables that are given vector type |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
debugging
public static boolean debugging
- print out names of variables that are given vector type
Vectorize
public Vectorize()