Class SideEffectChecker
java.lang.Object
EDU.purdue.cs.bloat.tree.TreeVisitor
EDU.purdue.cs.bloat.trans.SideEffectChecker
SideEffectChecker traverses a tree and determines is a node has
any side effects such as changing the stack, calling a function, or
performing a residency check. The side effects are represented by an integer
whose bits represent a certain kind of side effect.
SideEffectChecker is a TreeVisitor. The way it works is that after a SideEffectChecker is reset, an expression tree Node is visited to determine whether or not it has side effects. Neat.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from class TreeVisitor
FORWARD, REVERSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanvoidreset()intvoidvisitArithExpr(ArithExpr expr) voidvoidvoidvoidvoidvisitCastExpr(CastExpr expr) voidvisitCatchExpr(CatchExpr expr) voidvisitFieldExpr(FieldExpr expr) voidvisitLocalExpr(LocalExpr expr) voidvisitMonitorStmt(MonitorStmt stmt) voidvoidvisitNewExpr(NewExpr expr) voidvoidvisitRCExpr(RCExpr expr) voidvisitStackExpr(StackExpr expr) voidvoidvoidvisitStoreExpr(StoreExpr expr) voidvisitUCExpr(UCExpr expr) voidMethods inherited from class TreeVisitor
direction, forward, prune, reverse, setPrune, visitAddressStoreStmt, visitBlock, visitCallExpr, visitCheckExpr, visitConstantExpr, visitDefExpr, visitExpr, visitExprStmt, visitFlowGraph, visitGotoStmt, visitIfCmpStmt, visitIfStmt, visitIfZeroStmt, visitInitStmt, visitInstanceOfExpr, visitJsrStmt, visitLabelStmt, visitMemExpr, visitMemRefExpr, visitNegExpr, visitNode, visitPhiCatchStmt, visitPhiJoinStmt, visitPhiStmt, visitRetStmt, visitReturnAddressExpr, visitReturnExprStmt, visitReturnStmt, visitSCStmt, visitShiftExpr, visitSRStmt, visitStmt, visitSwitchStmt, visitThrowStmt, visitTree, visitVarExpr
-
Field Details
-
STACK
public static final int STACK- See Also:
-
THROW
public static final int THROW- See Also:
-
CALL
public static final int CALL- See Also:
-
SYNC
public static final int SYNC- See Also:
-
ALLOC
public static final int ALLOC- See Also:
-
RC
public static final int RC- See Also:
-
UC
public static final int UC- See Also:
-
STORE
public static final int STORE- See Also:
-
ALIAS
public static final int ALIAS- See Also:
-
VOLATILE
public static final int VOLATILE- See Also:
-
-
Constructor Details
-
SideEffectChecker
Constructor. The Context is needed to determine whether or not a field is VOLATILE, etc.
-
-
Method Details
-
sideEffects
public int sideEffects() -
hasSideEffects
public boolean hasSideEffects() -
reset
public void reset() -
visitStoreExpr
- Overrides:
visitStoreExprin classTreeVisitor
-
visitLocalExpr
- Overrides:
visitLocalExprin classTreeVisitor
-
visitZeroCheckExpr
- Overrides:
visitZeroCheckExprin classTreeVisitor
-
visitRCExpr
- Overrides:
visitRCExprin classTreeVisitor
-
visitUCExpr
- Overrides:
visitUCExprin classTreeVisitor
-
visitNewMultiArrayExpr
- Overrides:
visitNewMultiArrayExprin classTreeVisitor
-
visitNewArrayExpr
- Overrides:
visitNewArrayExprin classTreeVisitor
-
visitCatchExpr
- Overrides:
visitCatchExprin classTreeVisitor
-
visitNewExpr
- Overrides:
visitNewExprin classTreeVisitor
-
visitStackExpr
- Overrides:
visitStackExprin classTreeVisitor
-
visitCastExpr
- Overrides:
visitCastExprin classTreeVisitor
-
visitArithExpr
- Overrides:
visitArithExprin classTreeVisitor
-
visitArrayLengthExpr
- Overrides:
visitArrayLengthExprin classTreeVisitor
-
visitArrayRefExpr
- Overrides:
visitArrayRefExprin classTreeVisitor
-
visitFieldExpr
- Overrides:
visitFieldExprin classTreeVisitor
-
visitStaticFieldExpr
- Overrides:
visitStaticFieldExprin classTreeVisitor
-
visitCallStaticExpr
- Overrides:
visitCallStaticExprin classTreeVisitor
-
visitCallMethodExpr
- Overrides:
visitCallMethodExprin classTreeVisitor
-
visitMonitorStmt
- Overrides:
visitMonitorStmtin classTreeVisitor
-
visitStackManipStmt
- Overrides:
visitStackManipStmtin classTreeVisitor
-