Class SimpleDemandPointerFlowGraph.StatementVisitor
java.lang.Object
com.ibm.wala.ssa.SSAInstruction.Visitor
com.ibm.wala.demandpa.flowgraph.SimpleDemandPointerFlowGraph.StatementVisitor
- All Implemented Interfaces:
SSAInstruction.IVisitor
- Enclosing class:
SimpleDemandPointerFlowGraph
A visitor that generates graph nodes and edges for an IR.
strategy: when visiting a statement, for each use of that statement, add a graph edge from def to use.
TODO: special treatment for parameter passing, etc.
-
Field Summary
Modifier and TypeFieldDescriptionprotected final DefUse
Def-use informationprotected final IR
The governing IRprotected final CGNode
The node whose statements we are currently traversingprotected final SymbolTable
Governing symbol table -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
setBasicBlock
(ISSABasicBlock block) The calling loop must call this in each iteration!void
visitArrayLoad
(SSAArrayLoadInstruction instruction) void
visitArrayStore
(SSAArrayStoreInstruction instruction) void
visitCheckCast
(SSACheckCastInstruction instruction) void
visitGet
(SSAGetInstruction instruction) void
visitGetCaughtException
(SSAGetCaughtExceptionInstruction instruction) protected void
visitGetInternal
(int lval, boolean isStatic, FieldReference field) void
visitInvoke
(SSAInvokeInstruction instruction) void
visitLoadMetadata
(SSALoadMetadataInstruction instruction) void
visitNew
(SSANewInstruction instruction) void
visitPi
(SSAPiInstruction instruction) void
visitPut
(SSAPutInstruction instruction) void
visitPutInternal
(int rval, boolean isStatic, FieldReference field) void
visitReturn
(SSAReturnInstruction instruction) void
visitThrow
(SSAThrowInstruction instruction) Methods inherited from class com.ibm.wala.ssa.SSAInstruction.Visitor
visitArrayLength, visitBinaryOp, visitComparison, visitConditionalBranch, visitConversion, visitGoto, visitInstanceof, visitMonitor, visitPhi, visitSwitch, visitUnaryOp
-
Field Details
-
node
The node whose statements we are currently traversing -
ir
The governing IR -
symbolTable
Governing symbol table -
du
Def-use information
-
-
Constructor Details
-
StatementVisitor
-
-
Method Details
-
visitArrayLoad
- Specified by:
visitArrayLoad
in interfaceSSAInstruction.IVisitor
- Overrides:
visitArrayLoad
in classSSAInstruction.Visitor
-
visitArrayStore
- Specified by:
visitArrayStore
in interfaceSSAInstruction.IVisitor
- Overrides:
visitArrayStore
in classSSAInstruction.Visitor
-
visitCheckCast
- Specified by:
visitCheckCast
in interfaceSSAInstruction.IVisitor
- Overrides:
visitCheckCast
in classSSAInstruction.Visitor
-
visitReturn
- Specified by:
visitReturn
in interfaceSSAInstruction.IVisitor
- Overrides:
visitReturn
in classSSAInstruction.Visitor
-
visitGet
- Specified by:
visitGet
in interfaceSSAInstruction.IVisitor
- Overrides:
visitGet
in classSSAInstruction.Visitor
-
visitGetInternal
-
visitPut
- Specified by:
visitPut
in interfaceSSAInstruction.IVisitor
- Overrides:
visitPut
in classSSAInstruction.Visitor
-
visitPutInternal
-
visitInvoke
- Specified by:
visitInvoke
in interfaceSSAInstruction.IVisitor
- Overrides:
visitInvoke
in classSSAInstruction.Visitor
-
visitNew
- Specified by:
visitNew
in interfaceSSAInstruction.IVisitor
- Overrides:
visitNew
in classSSAInstruction.Visitor
-
visitThrow
- Specified by:
visitThrow
in interfaceSSAInstruction.IVisitor
- Overrides:
visitThrow
in classSSAInstruction.Visitor
-
visitGetCaughtException
- Specified by:
visitGetCaughtException
in interfaceSSAInstruction.IVisitor
- Overrides:
visitGetCaughtException
in classSSAInstruction.Visitor
-
visitPi
- Specified by:
visitPi
in interfaceSSAInstruction.IVisitor
- Overrides:
visitPi
in classSSAInstruction.Visitor
-
getBasicBlock
-
setBasicBlock
The calling loop must call this in each iteration! -
visitLoadMetadata
- Specified by:
visitLoadMetadata
in interfaceSSAInstruction.IVisitor
- Overrides:
visitLoadMetadata
in classSSAInstruction.Visitor
-