protected class SimpleDemandPointerFlowGraph.StatementVisitor extends SSAInstruction.Visitor
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.
| Modifier and Type | Field and Description |
|---|---|
protected DefUse |
du
Def-use information
|
protected IR |
ir
The governing IR
|
protected CGNode |
node
The node whose statements we are currently traversing
|
protected SymbolTable |
symbolTable
Governing symbol table
|
| Constructor and Description |
|---|
StatementVisitor(CGNode node,
IR ir,
DefUse du) |
visitArrayLength, visitBinaryOp, visitComparison, visitConditionalBranch, visitConversion, visitGoto, visitInstanceof, visitMonitor, visitPhi, visitSwitch, visitUnaryOpprotected final CGNode node
protected final IR ir
protected final SymbolTable symbolTable
protected final DefUse du
public void visitArrayLoad(SSAArrayLoadInstruction instruction)
visitArrayLoad in interface SSAInstruction.IVisitorvisitArrayLoad in class SSAInstruction.Visitorpublic void visitArrayStore(SSAArrayStoreInstruction instruction)
visitArrayStore in interface SSAInstruction.IVisitorvisitArrayStore in class SSAInstruction.Visitorpublic void visitCheckCast(SSACheckCastInstruction instruction)
visitCheckCast in interface SSAInstruction.IVisitorvisitCheckCast in class SSAInstruction.Visitorpublic void visitReturn(SSAReturnInstruction instruction)
visitReturn in interface SSAInstruction.IVisitorvisitReturn in class SSAInstruction.Visitorpublic void visitGet(SSAGetInstruction instruction)
visitGet in interface SSAInstruction.IVisitorvisitGet in class SSAInstruction.Visitorprotected void visitGetInternal(int lval,
boolean isStatic,
FieldReference field)
public void visitPut(SSAPutInstruction instruction)
visitPut in interface SSAInstruction.IVisitorvisitPut in class SSAInstruction.Visitorpublic void visitPutInternal(int rval,
boolean isStatic,
FieldReference field)
public void visitInvoke(SSAInvokeInstruction instruction)
visitInvoke in interface SSAInstruction.IVisitorvisitInvoke in class SSAInstruction.Visitorpublic void visitNew(SSANewInstruction instruction)
visitNew in interface SSAInstruction.IVisitorvisitNew in class SSAInstruction.Visitorpublic void visitThrow(SSAThrowInstruction instruction)
visitThrow in interface SSAInstruction.IVisitorvisitThrow in class SSAInstruction.Visitorpublic void visitGetCaughtException(SSAGetCaughtExceptionInstruction instruction)
visitGetCaughtException in interface SSAInstruction.IVisitorvisitGetCaughtException in class SSAInstruction.Visitorpublic void visitPi(SSAPiInstruction instruction)
visitPi in interface SSAInstruction.IVisitorvisitPi in class SSAInstruction.Visitorpublic ISSABasicBlock getBasicBlock()
public void setBasicBlock(ISSABasicBlock block)
public void visitLoadMetadata(SSALoadMetadataInstruction instruction)
visitLoadMetadata in interface SSAInstruction.IVisitorvisitLoadMetadata in class SSAInstruction.Visitor