Class JSSSAPropagationCallGraphBuilder

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  JSSSAPropagationCallGraphBuilder.JSConstraintVisitor  
      static class  JSSSAPropagationCallGraphBuilder.JSInterestingVisitor  
      static class  JSSSAPropagationCallGraphBuilder.JSPointerAnalysisImpl  
      • Nested classes/interfaces inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder

        com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder.AstConstraintVisitor, com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder.AstInterestingVisitor, com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder.AstPointerAnalysisImpl
      • Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder

        com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.ConstraintVisitor, com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.InterestingVisitor
      • Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder

        com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.ArrayLoadOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.ArrayStoreOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.FilterOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.GetFieldOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.InstanceArrayStoreOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.InstancePutFieldOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.InverseFilterOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.MutableBoolean, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.PutFieldOperator, com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder.TypedPointerKey
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static boolean DEBUG_LEXICAL  
      static boolean DEBUG_TYPE_INFERENCE  
      static java.lang.String GLOBAL_OBJ_VAR_NAME
      name to be used internally to pass around the global object
      • Fields inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder

        DEBUG_PROPERTIES
      • Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder

        monitor, PERIODIC_WIPE_SOFT_CACHES, SHORT_CIRCUIT_SINGLE_USES, WIPE_SOFT_CACHE_INTERVAL
      • Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder

        assignOperator, callGraph, cha, contextSelector, DEBUG_GENERAL, entrypointCallSites, filterOperator, instanceKeyFactory, inverseFilterOperator, options, pointerKeyFactory, system
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected JSSSAPropagationCallGraphBuilder​(com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod abstractRootMethod, com.ibm.wala.ipa.callgraph.AnalysisOptions options, com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache, com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory pointerKeyFactory)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addAssignmentsForCatchPointerKey​(com.ibm.wala.ipa.callgraph.propagation.PointerKey exceptionVar, java.util.Set<com.ibm.wala.classLoader.IClass> catchClasses, com.ibm.wala.ipa.callgraph.propagation.PointerKey e)  
      protected com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph createEmptyCallGraph​(com.ibm.wala.classLoader.IMethod fakeRootClass, com.ibm.wala.ipa.callgraph.AnalysisOptions options)  
      protected com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKeyForUnknownWrites​(com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKey)  
      java.net.URL getBaseURL()  
      com.ibm.wala.cast.ipa.callgraph.GlobalObjectKey getGlobalObject​(com.ibm.wala.core.util.strings.Atom language)  
      com.ibm.wala.ipa.callgraph.propagation.PointerKey getPointerKeyForGlobalVar​(java.lang.String varName)  
      static com.ibm.wala.cast.tree.CAstSourcePositionMap.Position getSomePositionForMethod​(com.ibm.wala.ssa.IR ir, com.ibm.wala.cast.loader.AstMethod method)  
      protected boolean isConstantRef​(com.ibm.wala.ssa.SymbolTable symbolTable, int valueNumber)  
      protected boolean isUncataloguedField​(com.ibm.wala.classLoader.IClass type, java.lang.String fieldName)  
      protected com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.InterestingVisitor makeInterestingVisitor​(com.ibm.wala.ipa.callgraph.CGNode node, int vn)  
      protected com.ibm.wala.ipa.callgraph.propagation.PropagationSystem makeSystem​(com.ibm.wala.ipa.callgraph.AnalysisOptions options)  
      protected com.ibm.wala.analysis.typeInference.TypeInference makeTypeInference​(com.ibm.wala.ssa.IR ir, com.ibm.wala.ipa.cha.IClassHierarchy cha)  
      JSSSAPropagationCallGraphBuilder.JSConstraintVisitor makeVisitor​(com.ibm.wala.ipa.callgraph.CGNode node)  
      protected void processCallingConstraints​(com.ibm.wala.ipa.callgraph.CGNode caller, com.ibm.wala.ssa.SSAAbstractInvokeInstruction instruction, com.ibm.wala.ipa.callgraph.CGNode target, com.ibm.wala.ipa.callgraph.propagation.InstanceKey[][] constParams, com.ibm.wala.ipa.callgraph.propagation.PointerKey uniqueCatchKey)  
      static void processCallingConstraintsInternal​(com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder builder, com.ibm.wala.ipa.callgraph.CGNode caller, com.ibm.wala.ssa.SSAAbstractInvokeInstruction instruction, com.ibm.wala.ipa.callgraph.CGNode target, com.ibm.wala.ipa.callgraph.propagation.InstanceKey[][] constParams, com.ibm.wala.ipa.callgraph.propagation.PointerKey uniqueCatchKey)  
      protected boolean sameMethod​(com.ibm.wala.ipa.callgraph.CGNode opNode, java.lang.String definingMethod)  
      void setBaseURL​(java.net.URL url)  
      protected boolean useObjectCatalog()  
      • Methods inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder

        hasNoInterestingUses, makeDefaultContextInterpreters
      • Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder

        addBlockInstructionConstraints, addConstraintsFromNode, addNodeInstructionConstraints, addNodePassthruExceptionConstraints, addNodeValueConstraints, contentsAreInvariant, contentsAreInvariant, getCaughtExceptionTypes, getCFAContextInterpreter, getIncomingPEIs, getInstanceKeyForPEI, getInstanceKeyForPEI, getInvariantContents, getInvariantContents, getTargetPointerKey, getTargetsForCall, getUniqueCatchKey, hasUniqueCatchBlock, iterateCrossProduct, iteratePointerKeys, makeSolver, unconditionallyAddConstraintsFromNode
      • Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder

        addConstraintsFromChangedNode, addConstraintsFromNewNodes, assignInstanceToCatch, catches, customInit, filterForClass, getAnalysisCache, getCallGraph, getClassHierarchy, getContextInterpreter, getContextSelector, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getInstanceKeyForAllocation, getInstanceKeyForConstant, getInstanceKeyForMetadataObject, getInstanceKeyForMultiNewArray, getInstanceKeys, getInstanceKeysForClass, getJavaLangObject, getMutableInstanceKeysForClass, getOptions, getPointerAnalysis, getPointerKeyFactory, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getPropagationSystem, getSolver, getSystem, getTargetForCall, haveAlreadyVisited, isJavaLangObject, makeCallGraph, makeCallGraph, markAlreadyVisited, markChanged, markDiscovered, representsNullType, setContextInterpreter, setContextSelector, setInstanceKeys, setPointerKeyFactory, wasChanged
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.HeapModel

        getClassHierarchy
      • Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory

        getInstanceKeyForAllocation, getInstanceKeyForConstant, getInstanceKeyForMetadataObject, getInstanceKeyForMultiNewArray
      • Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory

        getFilteredPointerKeyForLocal, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField
    • Field Detail

      • GLOBAL_OBJ_VAR_NAME

        public static final java.lang.String GLOBAL_OBJ_VAR_NAME
        name to be used internally to pass around the global object
        See Also:
        Constant Field Values
    • Constructor Detail

      • JSSSAPropagationCallGraphBuilder

        protected JSSSAPropagationCallGraphBuilder​(com.ibm.wala.ipa.callgraph.impl.AbstractRootMethod abstractRootMethod,
                                                   com.ibm.wala.ipa.callgraph.AnalysisOptions options,
                                                   com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache,
                                                   com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory pointerKeyFactory)
    • Method Detail

      • getGlobalObject

        public com.ibm.wala.cast.ipa.callgraph.GlobalObjectKey getGlobalObject​(com.ibm.wala.core.util.strings.Atom language)
        Specified by:
        getGlobalObject in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • getBaseURL

        public java.net.URL getBaseURL()
      • setBaseURL

        public void setBaseURL​(java.net.URL url)
      • isConstantRef

        protected boolean isConstantRef​(com.ibm.wala.ssa.SymbolTable symbolTable,
                                        int valueNumber)
        Overrides:
        isConstantRef in class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
      • useObjectCatalog

        protected boolean useObjectCatalog()
        Specified by:
        useObjectCatalog in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • isUncataloguedField

        protected boolean isUncataloguedField​(com.ibm.wala.classLoader.IClass type,
                                              java.lang.String fieldName)
        Overrides:
        isUncataloguedField in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • fieldKeyForUnknownWrites

        protected com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKeyForUnknownWrites​(com.ibm.wala.ipa.callgraph.propagation.AbstractFieldPointerKey fieldKey)
        Specified by:
        fieldKeyForUnknownWrites in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • getPointerKeyForGlobalVar

        public com.ibm.wala.ipa.callgraph.propagation.PointerKey getPointerKeyForGlobalVar​(java.lang.String varName)
      • createEmptyCallGraph

        protected com.ibm.wala.ipa.callgraph.impl.ExplicitCallGraph createEmptyCallGraph​(com.ibm.wala.classLoader.IMethod fakeRootClass,
                                                                                         com.ibm.wala.ipa.callgraph.AnalysisOptions options)
        Overrides:
        createEmptyCallGraph in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • makeTypeInference

        protected com.ibm.wala.analysis.typeInference.TypeInference makeTypeInference​(com.ibm.wala.ssa.IR ir,
                                                                                      com.ibm.wala.ipa.cha.IClassHierarchy cha)
      • addAssignmentsForCatchPointerKey

        protected void addAssignmentsForCatchPointerKey​(com.ibm.wala.ipa.callgraph.propagation.PointerKey exceptionVar,
                                                        java.util.Set<com.ibm.wala.classLoader.IClass> catchClasses,
                                                        com.ibm.wala.ipa.callgraph.propagation.PointerKey e)
        Overrides:
        addAssignmentsForCatchPointerKey in class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
      • makeInterestingVisitor

        protected com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder.InterestingVisitor makeInterestingVisitor​(com.ibm.wala.ipa.callgraph.CGNode node,
                                                                                                                                  int vn)
        Overrides:
        makeInterestingVisitor in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • makeSystem

        protected com.ibm.wala.ipa.callgraph.propagation.PropagationSystem makeSystem​(com.ibm.wala.ipa.callgraph.AnalysisOptions options)
        Overrides:
        makeSystem in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
      • getSomePositionForMethod

        public static com.ibm.wala.cast.tree.CAstSourcePositionMap.Position getSomePositionForMethod​(com.ibm.wala.ssa.IR ir,
                                                                                                     com.ibm.wala.cast.loader.AstMethod method)
      • processCallingConstraints

        protected void processCallingConstraints​(com.ibm.wala.ipa.callgraph.CGNode caller,
                                                 com.ibm.wala.ssa.SSAAbstractInvokeInstruction instruction,
                                                 com.ibm.wala.ipa.callgraph.CGNode target,
                                                 com.ibm.wala.ipa.callgraph.propagation.InstanceKey[][] constParams,
                                                 com.ibm.wala.ipa.callgraph.propagation.PointerKey uniqueCatchKey)
        Overrides:
        processCallingConstraints in class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
      • processCallingConstraintsInternal

        public static void processCallingConstraintsInternal​(com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder builder,
                                                             com.ibm.wala.ipa.callgraph.CGNode caller,
                                                             com.ibm.wala.ssa.SSAAbstractInvokeInstruction instruction,
                                                             com.ibm.wala.ipa.callgraph.CGNode target,
                                                             com.ibm.wala.ipa.callgraph.propagation.InstanceKey[][] constParams,
                                                             com.ibm.wala.ipa.callgraph.propagation.PointerKey uniqueCatchKey)
      • sameMethod

        protected boolean sameMethod​(com.ibm.wala.ipa.callgraph.CGNode opNode,
                                     java.lang.String definingMethod)
        Specified by:
        sameMethod in class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder