|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectat.dms.kjc.EmptyAttributeVisitor
at.dms.kjc.ReplacingVisitor
at.dms.kjc.SLIRReplacingVisitor
at.dms.kjc.sir.lowering.Propagator
public class Propagator
This class propagates constants and partially evaluates all expressions as much as possible.
| Field Summary | |
|---|---|
protected boolean |
added
If anything was added |
protected Hashtable<JLocalVariable,Object> |
constants
Map of known constants/Overloaded for copy prop (JLocalVariable -> JLiteral/JLocalVariableExpr/Array) When storing information about an array JLiteral/JLocalVariablesExpr are stored in the Array being mapped to |
static String |
TEMP_VARIABLE_BASE
Base for new const. |
protected boolean |
write
Determines whether this instance of Propagator writes actual changes or not |
| Fields inherited from class at.dms.kjc.EmptyAttributeVisitor |
|---|
forwards |
| Fields inherited from interface at.dms.kjc.Constants |
|---|
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BIT, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VECTOR, TID_VOID, VECTOR_EMPTY |
| Constructor Summary | |
|---|---|
Propagator(Hashtable<JLocalVariable,Object> constants)
Constructor, given that constants maps JLocalVariables to JLiterals for the scope that we'll be visiting. |
|
Propagator(Hashtable<JLocalVariable,Object> constants,
boolean write)
Constructor, given that constants maps JLocalVariables to JLiterals for the scope that we'll be visiting. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final String TEMP_VARIABLE_BASE
protected Hashtable<JLocalVariable,Object> constants
protected boolean added
protected boolean write
| Constructor Detail |
|---|
public Propagator(Hashtable<JLocalVariable,Object> constants)
constants -
public Propagator(Hashtable<JLocalVariable,Object> constants,
boolean write)
constants - write - | Method Detail |
|---|
public Propagator construct(Hashtable<JLocalVariable,Object> constants)
constants -
public Propagator construct(Hashtable<JLocalVariable,Object> constants,
boolean write)
constants - write -
public Hashtable<JLocalVariable,Object> getConstants()
public Hashtable<JLocalVariable,Boolean> getChanged()
public Object visitRegReceiverStatement(SIRRegReceiverStatement self,
JExpression portal,
SIRStream receiver,
JMethodDeclaration[] methods)
SLIRReplacingVisitor
visitRegReceiverStatement in interface SLIRAttributeVisitor<Object>visitRegReceiverStatement in class SLIRReplacingVisitor
public Object visitWhileStatement(JWhileStatement self,
JExpression cond,
JStatement body)
visitWhileStatement in interface AttributeVisitor<Object>visitWhileStatement in class ReplacingVisitor
public Object visitDoStatement(JDoStatement self,
JExpression cond,
JStatement body)
visitDoStatement in interface AttributeVisitor<Object>visitDoStatement in class ReplacingVisitor
public Object visitVariableDefinition(JVariableDefinition self,
int modifiers,
CType type,
String ident,
JExpression expr)
visitVariableDefinition in interface AttributeVisitor<Object>visitVariableDefinition in class ReplacingVisitor
public Object visitSwitchStatement(JSwitchStatement self,
JExpression expr,
JSwitchGroup[] body)
visitSwitchStatement in interface AttributeVisitor<Object>visitSwitchStatement in class ReplacingVisitor
public Object visitReturnStatement(JReturnStatement self,
JExpression expr)
visitReturnStatement in interface AttributeVisitor<Object>visitReturnStatement in class ReplacingVisitor
public Object visitIfStatement(JIfStatement self,
JExpression cond,
JStatement thenClause,
JStatement elseClause)
visitIfStatement in interface AttributeVisitor<Object>visitIfStatement in class ReplacingVisitor
public Object visitForStatement(JForStatement self,
JStatement init,
JExpression cond,
JStatement incr,
JStatement body)
visitForStatement in interface AttributeVisitor<Object>visitForStatement in class ReplacingVisitor
public Object visitExpressionStatement(JExpressionStatement self,
JExpression expr)
visitExpressionStatement in interface AttributeVisitor<Object>visitExpressionStatement in class ReplacingVisitor
public Object visitPrintStatement(SIRPrintStatement self,
JExpression arg)
visitPrintStatement in interface SLIRAttributeVisitor<Object>visitPrintStatement in class SLIRReplacingVisitor
public Object visitPeekExpression(SIRPeekExpression self,
CType tapeType,
JExpression arg)
visitPeekExpression in interface SLIRAttributeVisitor<Object>visitPeekExpression in class SLIRReplacingVisitor
public Object visitPushExpression(SIRPushExpression self,
CType tapeType,
JExpression arg)
visitPushExpression in interface SLIRAttributeVisitor<Object>visitPushExpression in class SLIRReplacingVisitor
public Object visitPostfixExpression(JPostfixExpression self,
int oper,
JExpression expr)
ReplacingVisitor
visitPostfixExpression in interface AttributeVisitor<Object>visitPostfixExpression in class ReplacingVisitor
public Object visitPrefixExpression(JPrefixExpression self,
int oper,
JExpression expr)
ReplacingVisitor
visitPrefixExpression in interface AttributeVisitor<Object>visitPrefixExpression in class ReplacingVisitor
public Object visitCompoundAssignmentExpression(JCompoundAssignmentExpression self,
int oper,
JExpression left,
JExpression right)
ReplacingVisitor
visitCompoundAssignmentExpression in interface AttributeVisitor<Object>visitCompoundAssignmentExpression in class ReplacingVisitor
public Object visitFieldExpression(JFieldAccessExpression self,
JExpression left,
String ident)
ReplacingVisitor
visitFieldExpression in interface AttributeVisitor<Object>visitFieldExpression in class ReplacingVisitor
public Object visitAssignmentExpression(JAssignmentExpression self,
JExpression left,
JExpression right)
visitAssignmentExpression in interface AttributeVisitor<Object>visitAssignmentExpression in class ReplacingVisitor
public Object visitUnaryPlusExpression(JUnaryExpression self,
JExpression expr)
visitUnaryPlusExpression in interface AttributeVisitor<Object>visitUnaryPlusExpression in class ReplacingVisitor
public Object visitCastExpression(JCastExpression self,
JExpression expr,
CType type)
visitCastExpression in interface AttributeVisitor<Object>visitCastExpression in class ReplacingVisitor
public Object visitUnaryPromoteExpression(JUnaryPromote self,
JExpression expr,
CType type)
visitUnaryPromoteExpression in interface AttributeVisitor<Object>visitUnaryPromoteExpression in class ReplacingVisitor
public Object visitUnaryMinusExpression(JUnaryExpression self,
JExpression expr)
visitUnaryMinusExpression in interface AttributeVisitor<Object>visitUnaryMinusExpression in class ReplacingVisitor
public Object visitBitwiseComplementExpression(JUnaryExpression self,
JExpression expr)
visitBitwiseComplementExpression in interface AttributeVisitor<Object>visitBitwiseComplementExpression in class ReplacingVisitor
public Object visitLogicalComplementExpression(JUnaryExpression self,
JExpression expr)
visitLogicalComplementExpression in interface AttributeVisitor<Object>visitLogicalComplementExpression in class ReplacingVisitor
public Object visitShiftExpression(JShiftExpression self,
int oper,
JExpression left,
JExpression right)
visitShiftExpression in interface AttributeVisitor<Object>visitShiftExpression in class ReplacingVisitor
public Object visitNewArrayExpression(JNewArrayExpression self,
CType type,
JExpression[] dims,
JArrayInitializer init)
visitNewArrayExpression in interface AttributeVisitor<Object>visitNewArrayExpression in class ReplacingVisitor
public Object visitLocalVariableExpression(JLocalVariableExpression self,
String ident)
visitLocalVariableExpression in interface AttributeVisitor<Object>visitLocalVariableExpression in class EmptyAttributeVisitor
public Object visitRelationalExpression(JRelationalExpression self,
int oper,
JExpression left,
JExpression right)
visitRelationalExpression in interface AttributeVisitor<Object>visitRelationalExpression in class ReplacingVisitor
public Object visitConditionalExpression(JConditionalExpression self,
JExpression cond,
JExpression left,
JExpression right)
visitConditionalExpression in interface AttributeVisitor<Object>visitConditionalExpression in class ReplacingVisitor
public Object visitBinaryExpression(JBinaryExpression self,
String oper,
JExpression left,
JExpression right)
visitBinaryExpression in interface AttributeVisitor<Object>visitBinaryExpression in class ReplacingVisitor
public Object visitBitwiseExpression(JBitwiseExpression self,
int oper,
JExpression left,
JExpression right)
visitBitwiseExpression in interface AttributeVisitor<Object>visitBitwiseExpression in class ReplacingVisitor
public Object visitEqualityExpression(JEqualityExpression self,
boolean equal,
JExpression left,
JExpression right)
ReplacingVisitor
visitEqualityExpression in interface AttributeVisitor<Object>visitEqualityExpression in class ReplacingVisitor
public Object visitMethodCallExpression(JMethodCallExpression self,
JExpression prefix,
String ident,
JExpression[] args)
visitMethodCallExpression in interface AttributeVisitor<Object>visitMethodCallExpression in class ReplacingVisitorpublic Object visitLatencyMax(SIRLatencyMax self)
visitLatencyMax in interface SLIRAttributeVisitor<Object>visitLatencyMax in class SLIRReplacingVisitorpublic Object visitLatencyRange(SIRLatencyRange self)
visitLatencyRange in interface SLIRAttributeVisitor<Object>visitLatencyRange in class SLIRReplacingVisitor
public Object visitArrayLengthExpression(JArrayLengthExpression self,
JExpression prefix)
visitArrayLengthExpression in interface AttributeVisitor<Object>visitArrayLengthExpression in class ReplacingVisitor
public Object visitArrayAccessExpression(JArrayAccessExpression self,
JExpression prefix,
JExpression accessor)
visitArrayAccessExpression in interface AttributeVisitor<Object>visitArrayAccessExpression in class ReplacingVisitor
public Object visitBlockStatement(JBlock self,
JavaStyleComment[] comments)
ReplacingVisitor
visitBlockStatement in interface AttributeVisitor<Object>visitBlockStatement in class ReplacingVisitor
public Object visitSwitchLabel(JSwitchLabel self,
JExpression expr)
visitSwitchLabel in interface AttributeVisitor<Object>visitSwitchLabel in class ReplacingVisitorpublic Object visitArgs(JExpression[] args)
visitArgs in class ReplacingVisitor
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||