Class AstJavaSSAPropagationCallGraphBuilder.AstJavaConstraintVisitor
java.lang.Object
com.ibm.wala.ssa.SSAInstruction.Visitor
com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.ConstraintVisitor
com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder.AstConstraintVisitor
com.ibm.wala.cast.java.ipa.callgraph.AstJavaSSAPropagationCallGraphBuilder.AstJavaConstraintVisitor
- All Implemented Interfaces:
AstInstructionVisitor, AstJavaInstructionVisitor, SSAInstruction.IVisitor
- Enclosing class:
AstJavaSSAPropagationCallGraphBuilder
protected static class AstJavaSSAPropagationCallGraphBuilder.AstJavaConstraintVisitor
extends AstSSAPropagationCallGraphBuilder.AstConstraintVisitor
implements AstJavaInstructionVisitor
-
Nested Class Summary
Nested classes/interfaces inherited from class AstSSAPropagationCallGraphBuilder.AstConstraintVisitor
AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.FieldReadAction, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldActionModifier and TypeClassDescriptionprotected classprotected static interfaceNested classes/interfaces inherited from class SSAPropagationCallGraphBuilder.ConstraintVisitor
SSAPropagationCallGraphBuilder.ConstraintVisitor.DefaultInvariantComputer, SSAPropagationCallGraphBuilder.ConstraintVisitor.InvariantComputerModifier and TypeClassDescriptionclassprotected static interface -
Field Summary
Fields inherited from class SSAPropagationCallGraphBuilder.ConstraintVisitor
basicBlock, builder, du, ir, node, symbolTable, systemModifier and TypeFieldDescriptionprotected ISSABasicBlockThe basic block currently being processedprotected final SSAPropagationCallGraphBuilderThe governing call graph builder.protected final DefUseDef-use informationprotected final IRViewThe governing IRprotected final CGNodeThe node whose statements we are currently traversingprotected final SymbolTableGoverning symbol tableprotected final PropagationSystemThe governing propagation system, into which constraints are added -
Constructor Summary
ConstructorsConstructorDescriptionAstJavaConstraintVisitor(AstSSAPropagationCallGraphBuilder builder, CGNode node) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvisitJavaInvoke(AstJavaInvokeInstruction instruction) voidvisitNew(SSANewInstruction instruction) Methods inherited from class AstSSAPropagationCallGraphBuilder.AstConstraintVisitor
fieldReadAction, getBuilder, getPointerKeyForObjectCatalog, getPointerKeysForReflectedFieldRead, getPointerKeysForReflectedFieldWrite, newFieldFullOperation, newFieldOperation, newFieldOperationFieldConstant, newFieldOperationObjectAndFieldConstant, newFieldOperationOnlyFieldConstant, newFieldOperationOnlyObjectConstant, newFieldRead, newFieldRead, newFieldWrite, newFieldWrite, newFieldWrite, newFieldWrite, newFieldWrite, visitAstGlobalRead, visitAstGlobalWrite, visitAstLexicalRead, visitAstLexicalWrite, visitEachElementGet, visitPropertyRead, visitPropertyWrite, visitPutModifier and TypeMethodDescriptionprotected AstSSAPropagationCallGraphBuilderprotected voidnewFieldFullOperation(boolean isLoadOperation, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldAction action, PointerKey objKey, PointerKey fieldKey) protected voidnewFieldOperation(CGNode opNode, int objVn, int fieldsVn, boolean isLoadOperation, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldAction action) protected voidnewFieldOperationFieldConstant(CGNode opNode, boolean isLoadOperation, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldAction action, int objVn, InstanceKey[] fieldsKeys) protected voidnewFieldOperationObjectAndFieldConstant(boolean isLoadOperation, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldAction action, InstanceKey[] objKeys, InstanceKey[] fieldsKeys) protected voidnewFieldOperationOnlyFieldConstant(boolean isLoadOperation, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldAction action, PointerKey objKey, InstanceKey[] fieldsKeys) protected voidnewFieldOperationOnlyObjectConstant(boolean isLoadOperation, AstSSAPropagationCallGraphBuilder.AstConstraintVisitor.ReflectedFieldAction action, PointerKey fieldKey, InstanceKey[] objKeys) protected voidnewFieldRead(CGNode opNode, int objVn, int fieldsVn, int lhsVn) protected voidnewFieldRead(CGNode opNode, int objVn, int fieldsVn, PointerKey lhs) voidnewFieldWrite(CGNode opNode, int objVn, int fieldsVn, int rhsVn) voidnewFieldWrite(CGNode opNode, int objVn, int fieldsVn, InstanceKey[] rhsFixedValues) voidnewFieldWrite(CGNode opNode, int objVn, int fieldsVn, PointerKey rhs) voidnewFieldWrite(CGNode opNode, int objVn, InstanceKey[] fieldKeys, InstanceKey[] rhsValues) voidnewFieldWrite(CGNode opNode, int objVn, InstanceKey[] fieldKeys, PointerKey rhs) voidvisitAstGlobalRead(AstGlobalRead instruction) voidvisitAstGlobalWrite(AstGlobalWrite instruction) voidvisitAstLexicalRead(AstLexicalRead instruction) voidvisitAstLexicalWrite(AstLexicalWrite instruction) voidvoidvisitPropertyRead(AstPropertyRead instruction) voidvisitPropertyWrite(AstPropertyWrite instruction) voidvisitPut(SSAPutInstruction inst) Methods inherited from class SSAPropagationCallGraphBuilder.ConstraintVisitor
contentsAreInvariant, contentsAreInvariant, doVisitArrayLoad, doVisitArrayStore, getAnalysisCache, getBasicBlock, getClassHierarchy, getFilteredPointerKeyForLocal, getInstanceKeyForAllocation, getInstanceKeyForClassObject, getInstanceKeyForConstant, getInstanceKeyForMultiNewArray, getInstanceKeyForPEI, getInvariantContents, getInvariantContents, getOptions, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getTargetForCall, hasNoInterestingUses, isRootType, processClassInitializer, processPutField, processPutStatic, setBasicBlock, visitArrayLoad, visitArrayStore, visitCheckCast, visitGet, visitGetCaughtException, visitGetInternal, visitInvoke, visitInvokeInternal, visitLoadMetadata, visitPhi, visitPi, visitPutInternal, visitReturn, visitThrowModifier and TypeMethodDescriptionprotected booleancontentsAreInvariant(SymbolTable symbolTable, DefUse du, int valueNumber) protected booleancontentsAreInvariant(SymbolTable symbolTable, DefUse du, int[] valueNumber) protected voiddoVisitArrayLoad(int def, int arrayRef) voiddoVisitArrayStore(int arrayRef, int value) protected IAnalysisCacheViewprotected IClassHierarchygetFilteredPointerKeyForLocal(int valueNumber, FilteredPointerKey.TypeFilter filter) getInstanceKeyForAllocation(NewSiteReference allocation) getInstanceKeyForClassObject(Object obj, TypeReference type) <T> InstanceKeygetInstanceKeyForMultiNewArray(NewSiteReference allocation, int dim) getInstanceKeyForPEI(ProgramCounter instr, TypeReference type) protected InstanceKey[]getInvariantContents(int valueNumber) protected InstanceKey[]getInvariantContents(SymbolTable symbolTable, DefUse du, CGNode node, int valueNumber) protected AnalysisOptionsgetPointerKeyForLocal(int valueNumber) getTargetForCall(CGNode caller, CallSiteReference site, IClass recv, InstanceKey[] iKey) protected booleanhasNoInterestingUses(int vn) protected booleanisRootType(IClass klass) protected voidprocessClassInitializer(IClass klass) TODO: lift most of this logic to PropagationCallGraphBuildervoidprocessPutField(int rval, int ref, IField f) protected voidprocessPutStatic(int rval, FieldReference field, IField f) voidsetBasicBlock(ISSABasicBlock block) The calling loop must call this in each iteration!voidvisitArrayLoad(SSAArrayLoadInstruction instruction) voidvisitArrayStore(SSAArrayStoreInstruction instruction) voidvisitCheckCast(SSACheckCastInstruction instruction) voidvisitGet(SSAGetInstruction instruction) voidvisitGetCaughtException(SSAGetCaughtExceptionInstruction instruction) protected voidvisitGetInternal(int lval, int ref, boolean isStatic, FieldReference field) voidvisitInvoke(SSAInvokeInstruction instruction) protected voidvisitInvokeInternal(SSAAbstractInvokeInstruction instruction, SSAPropagationCallGraphBuilder.ConstraintVisitor.InvariantComputer invs) voidvisitLoadMetadata(SSALoadMetadataInstruction instruction) voidvisitPhi(SSAPhiInstruction instruction) voidvisitPi(SSAPiInstruction instruction) voidvisitPutInternal(int rval, int ref, boolean isStatic, FieldReference field) voidvisitReturn(SSAReturnInstruction instruction) voidvisitThrow(SSAThrowInstruction instruction) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface AstInstructionVisitor
visitAssert, visitEachElementHasNext, visitEcho, visitIsDefined, visitYieldModifier and TypeMethodDescriptiondefault voidvisitAssert(AstAssertInstruction instruction) default voiddefault voidvisitEcho(AstEchoInstruction inst) default voiddefault voidMethods inherited from interface SSAInstruction.IVisitor
visitArrayLength, visitBinaryOp, visitComparison, visitConditionalBranch, visitConversion, visitGoto, visitInstanceof, visitMonitor, visitSwitch, visitUnaryOpModifier and TypeMethodDescriptiondefault voidvisitArrayLength(SSAArrayLengthInstruction instruction) default voidvisitBinaryOp(SSABinaryOpInstruction instruction) default voidvisitComparison(SSAComparisonInstruction instruction) default voidvisitConditionalBranch(SSAConditionalBranchInstruction instruction) default voidvisitConversion(SSAConversionInstruction instruction) default voidvisitGoto(SSAGotoInstruction instruction) default voidvisitInstanceof(SSAInstanceofInstruction instruction) default voidvisitMonitor(SSAMonitorInstruction instruction) default voidvisitSwitch(SSASwitchInstruction instruction) default voidvisitUnaryOp(SSAUnaryOpInstruction instruction)
-
Constructor Details
-
AstJavaConstraintVisitor
-
-
Method Details
-
visitEnclosingObjectReference
- Specified by:
visitEnclosingObjectReferencein interfaceAstJavaInstructionVisitor
-
visitNew
- Specified by:
visitNewin interfaceSSAInstruction.IVisitor- Overrides:
visitNewin classSSAPropagationCallGraphBuilder.ConstraintVisitor
-
visitJavaInvoke
- Specified by:
visitJavaInvokein interfaceAstJavaInstructionVisitor
-