at.dms.kjc.sir.lowering
Class FieldInitMover

java.lang.Object
  extended by at.dms.kjc.sir.EmptyStreamVisitor
      extended by at.dms.kjc.sir.lowering.FieldInitMover
All Implemented Interfaces:
StreamVisitor

public class FieldInitMover
extends EmptyStreamVisitor

This class converts joint field definition/assignment statements to a field decl and a corresponding field assignment statement in the init function. Eg

 int i = 5;
 
into
 int i;
 i = 5;
 
$Id: FieldInitMover.java,v 1.16 2006/10/17 23:27:20 dimock Exp $


Field Summary
static int COPY_ARRAY_INITIALIZERS
           
static int IGNORE_ARRAY_INITIALIZERS
           
static int MOVE_ARRAY_INITIALIZERS
           
 
Method Summary
static void moveFilterInitialAssignments(SIRFilter filter, int moveArrayInitializers)
          Move all (scalar and optionally array) field initializations out of declaration for a filter.
static void moveStreamInitialAssignments(SIRStream str, int moveArrayInitializers)
          Move all (scalar and optionally array) field initializations out of declaration for a stream.
 void preVisitStream(SIRStream self, SIRIterator iter)
          This is called before all visits to a stream structure (Filter, Pipeline, SplitJoin, FeedbackLoop)
 
Methods inherited from class at.dms.kjc.sir.EmptyStreamVisitor
postVisitFeedbackLoop, postVisitPipeline, postVisitSplitJoin, postVisitStream, preVisitFeedbackLoop, preVisitPipeline, preVisitSplitJoin, visitFilter, visitPhasedFilter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MOVE_ARRAY_INITIALIZERS

public static final int MOVE_ARRAY_INITIALIZERS
See Also:
Constant Field Values

COPY_ARRAY_INITIALIZERS

public static final int COPY_ARRAY_INITIALIZERS
See Also:
Constant Field Values

IGNORE_ARRAY_INITIALIZERS

public static final int IGNORE_ARRAY_INITIALIZERS
See Also:
Constant Field Values
Method Detail

moveStreamInitialAssignments

public static void moveStreamInitialAssignments(SIRStream str,
                                                int moveArrayInitializers)
Move all (scalar and optionally array) field initializations out of declaration for a stream.

Parameters:
str - stream to be processed (munged in place).
moveArrayInitializers -

moveFilterInitialAssignments

public static void moveFilterInitialAssignments(SIRFilter filter,
                                                int moveArrayInitializers)
Move all (scalar and optionally array) field initializations out of declaration for a filter.

Parameters:
filter - to be processed (munged in place).
moveArrayInitializers - one of MOVE_ARRAY_INITIALIZERS IGNORE_ARRAY_INITIALIZERS

preVisitStream

public void preVisitStream(SIRStream self,
                           SIRIterator iter)
Description copied from class: EmptyStreamVisitor
This is called before all visits to a stream structure (Filter, Pipeline, SplitJoin, FeedbackLoop)

Overrides:
preVisitStream in class EmptyStreamVisitor