protected static class SSAPropagationCallGraphBuilder.ConstraintVisitor extends SSAInstruction.Visitor
Modifier and Type | Class and Description |
---|---|
class |
SSAPropagationCallGraphBuilder.ConstraintVisitor.DefaultInvariantComputer |
protected static interface |
SSAPropagationCallGraphBuilder.ConstraintVisitor.InvariantComputer |
Modifier and Type | Field and Description |
---|---|
protected ISSABasicBlock |
basicBlock
The basic block currently being processed
|
protected SSAPropagationCallGraphBuilder |
builder
The governing call graph builder.
|
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
|
protected PropagationSystem |
system
The governing propagation system, into which constraints are added
|
Constructor and Description |
---|
ConstraintVisitor(SSAPropagationCallGraphBuilder builder,
CGNode node) |
visitArrayLength, visitBinaryOp, visitComparison, visitConditionalBranch, visitConversion, visitGoto, visitInstanceof, visitMonitor, visitSwitch, visitUnaryOp
protected final SSAPropagationCallGraphBuilder builder
protected final CGNode node
protected final IR ir
protected final PropagationSystem system
protected ISSABasicBlock basicBlock
protected final SymbolTable symbolTable
protected final DefUse du
public ConstraintVisitor(SSAPropagationCallGraphBuilder builder, CGNode node)
protected SSAPropagationCallGraphBuilder getBuilder()
protected AnalysisOptions getOptions()
protected AnalysisCache getAnalysisCache()
public PointerKey getPointerKeyForLocal(int valueNumber)
public FilteredPointerKey getFilteredPointerKeyForLocal(int valueNumber, FilteredPointerKey.TypeFilter filter)
public PointerKey getPointerKeyForReturnValue()
public PointerKey getPointerKeyForExceptionalReturnValue()
public PointerKey getPointerKeyForStaticField(IField f)
public PointerKey getPointerKeyForInstanceField(InstanceKey I, IField f)
public PointerKey getPointerKeyForArrayContents(InstanceKey I)
public InstanceKey getInstanceKeyForAllocation(NewSiteReference allocation)
public InstanceKey getInstanceKeyForMultiNewArray(NewSiteReference allocation, int dim)
public <T> InstanceKey getInstanceKeyForConstant(T S)
public InstanceKey getInstanceKeyForPEI(ProgramCounter instr, TypeReference type)
public InstanceKey getInstanceKeyForClassObject(Object obj, TypeReference type)
public CGNode getTargetForCall(CGNode caller, CallSiteReference site, IClass recv, InstanceKey[] iKey)
protected boolean contentsAreInvariant(SymbolTable symbolTable, DefUse du, int valueNumber)
protected boolean contentsAreInvariant(SymbolTable symbolTable, DefUse du, int[] valueNumber)
protected InstanceKey[] getInvariantContents(int valueNumber)
protected InstanceKey[] getInvariantContents(SymbolTable symbolTable, DefUse du, CGNode node, int valueNumber)
protected IClassHierarchy getClassHierarchy()
protected boolean hasNoInterestingUses(int vn)
protected boolean isRootType(IClass klass)
public void visitArrayLoad(SSAArrayLoadInstruction instruction)
visitArrayLoad
in interface SSAInstruction.IVisitor
visitArrayLoad
in class SSAInstruction.Visitor
protected void doVisitArrayLoad(int def, int arrayRef)
public void doVisitArrayStore(int arrayRef, int value)
public void visitArrayStore(SSAArrayStoreInstruction instruction)
visitArrayStore
in interface SSAInstruction.IVisitor
visitArrayStore
in class SSAInstruction.Visitor
public void visitCheckCast(SSACheckCastInstruction instruction)
visitCheckCast
in interface SSAInstruction.IVisitor
visitCheckCast
in class SSAInstruction.Visitor
public void visitReturn(SSAReturnInstruction instruction)
visitReturn
in interface SSAInstruction.IVisitor
visitReturn
in class SSAInstruction.Visitor
public void visitGet(SSAGetInstruction instruction)
visitGet
in interface SSAInstruction.IVisitor
visitGet
in class SSAInstruction.Visitor
protected void visitGetInternal(int lval, int ref, boolean isStatic, FieldReference field)
public void visitPut(SSAPutInstruction instruction)
visitPut
in interface SSAInstruction.IVisitor
visitPut
in class SSAInstruction.Visitor
public void visitPutInternal(int rval, int ref, boolean isStatic, FieldReference field)
public void processPutField(int rval, int ref, IField f)
protected void processPutStatic(int rval, FieldReference field, IField f)
public void visitInvoke(SSAInvokeInstruction instruction)
visitInvoke
in interface SSAInstruction.IVisitor
visitInvoke
in class SSAInstruction.Visitor
protected void visitInvokeInternal(SSAAbstractInvokeInstruction instruction, SSAPropagationCallGraphBuilder.ConstraintVisitor.InvariantComputer invs)
public void visitNew(SSANewInstruction instruction)
visitNew
in interface SSAInstruction.IVisitor
visitNew
in class SSAInstruction.Visitor
public void visitThrow(SSAThrowInstruction instruction)
visitThrow
in interface SSAInstruction.IVisitor
visitThrow
in class SSAInstruction.Visitor
public void visitGetCaughtException(SSAGetCaughtExceptionInstruction instruction)
visitGetCaughtException
in interface SSAInstruction.IVisitor
visitGetCaughtException
in class SSAInstruction.Visitor
public void visitPhi(SSAPhiInstruction instruction)
visitPhi
in interface SSAInstruction.IVisitor
visitPhi
in class SSAInstruction.Visitor
public void visitPi(SSAPiInstruction instruction)
visitPi
in interface SSAInstruction.IVisitor
visitPi
in class SSAInstruction.Visitor
public ISSABasicBlock getBasicBlock()
public void setBasicBlock(ISSABasicBlock block)
public void visitLoadMetadata(SSALoadMetadataInstruction instruction)
visitLoadMetadata
in interface SSAInstruction.IVisitor
visitLoadMetadata
in class SSAInstruction.Visitor
protected void processClassInitializer(IClass klass)