Class JSSSAPropagationCallGraphBuilder.JSConstraintVisitor
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.js.ipa.callgraph.JSSSAPropagationCallGraphBuilder.JSConstraintVisitor
- All Implemented Interfaces:
AstInstructionVisitor, JSInstructionVisitor, SSAInstruction.IVisitor
- Enclosing class:
JSSSAPropagationCallGraphBuilder
public static class JSSSAPropagationCallGraphBuilder.JSConstraintVisitor
extends AstSSAPropagationCallGraphBuilder.AstConstraintVisitor
implements JSInstructionVisitor
-
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvisitAstGlobalRead(AstGlobalRead instruction) voidvisitAstGlobalWrite(AstGlobalWrite instruction) voidvisitBinaryOp(SSABinaryOpInstruction instruction) voidvisitCheckRef(JavaScriptCheckReference instruction) voidvoidvoidvoidvisitJavaScriptInvoke(JavaScriptInvoke instruction) voidvisitPrototypeLookup(PrototypeLookup instruction) voidvisitSetPrototype(SetPrototype instruction) voidvisitTypeOf(JavaScriptTypeOfInstruction instruction) voidvoidvisitWithRegion(JavaScriptWithRegion 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, 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) 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, visitNew, 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) voidvisitNew(SSANewInstruction 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, visitEcho, visitYieldModifier and TypeMethodDescriptiondefault voidvisitAssert(AstAssertInstruction instruction) default voidvisitEcho(AstEchoInstruction inst) default voidMethods inherited from interface SSAInstruction.IVisitor
visitArrayLength, visitComparison, visitConditionalBranch, visitConversion, visitGoto, visitInstanceof, visitMonitor, visitSwitchModifier and TypeMethodDescriptiondefault voidvisitArrayLength(SSAArrayLengthInstruction 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)
-
Constructor Details
-
JSConstraintVisitor
-
-
Method Details
-
visitUnaryOp
- Specified by:
visitUnaryOpin interfaceSSAInstruction.IVisitor
-
visitIsDefined
- Specified by:
visitIsDefinedin interfaceAstInstructionVisitor
-
visitJavaScriptInstanceOf
- Specified by:
visitJavaScriptInstanceOfin interfaceJSInstructionVisitor
-
visitEachElementHasNext
- Specified by:
visitEachElementHasNextin interfaceAstInstructionVisitor
-
visitTypeOf
- Specified by:
visitTypeOfin interfaceJSInstructionVisitor
-
visitAstGlobalRead
- Specified by:
visitAstGlobalReadin interfaceAstInstructionVisitor- Overrides:
visitAstGlobalReadin classAstSSAPropagationCallGraphBuilder.AstConstraintVisitor
-
visitAstGlobalWrite
- Specified by:
visitAstGlobalWritein interfaceAstInstructionVisitor- Overrides:
visitAstGlobalWritein classAstSSAPropagationCallGraphBuilder.AstConstraintVisitor
-
visitBinaryOp
- Specified by:
visitBinaryOpin interfaceSSAInstruction.IVisitor
-
visitJavaScriptInvoke
- Specified by:
visitJavaScriptInvokein interfaceJSInstructionVisitor
-
visitCheckRef
- Specified by:
visitCheckRefin interfaceJSInstructionVisitor
-
visitWithRegion
- Specified by:
visitWithRegionin interfaceJSInstructionVisitor
-
visitSetPrototype
- Specified by:
visitSetPrototypein interfaceJSInstructionVisitor
-
visitPrototypeLookup
- Specified by:
visitPrototypeLookupin interfaceJSInstructionVisitor
-