Class JSZeroOrOneXCFABuilder

  • All Implemented Interfaces:
    com.ibm.wala.ipa.callgraph.CallGraphBuilder<com.ibm.wala.ipa.callgraph.propagation.InstanceKey>, com.ibm.wala.ipa.callgraph.propagation.HeapModel, com.ibm.wala.ipa.callgraph.propagation.InstanceKeyFactory, com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory

    public class JSZeroOrOneXCFABuilder
    extends JSCFABuilder
    0-x-CFA Call graph builder, optimized to not disambiguate instances of "uninteresting" types
    • Nested Class Summary

      • 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 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 
      Constructor Description
      JSZeroOrOneXCFABuilder​(com.ibm.wala.ipa.cha.IClassHierarchy cha, JSAnalysisOptions options, com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache, com.ibm.wala.ipa.callgraph.ContextSelector appContextSelector, com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter appContextInterpreter, int instancePolicy, boolean doOneCFA)  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static JSCFABuilder make​(JSAnalysisOptions options, com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache, com.ibm.wala.ipa.cha.IClassHierarchy cha, java.lang.ClassLoader cl, com.ibm.wala.ipa.callgraph.AnalysisScope scope, java.lang.String[] xmlFiles, byte instancePolicy, boolean doOneCFA)  
      • 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
    • Constructor Detail

      • JSZeroOrOneXCFABuilder

        public JSZeroOrOneXCFABuilder​(com.ibm.wala.ipa.cha.IClassHierarchy cha,
                                      JSAnalysisOptions options,
                                      com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache,
                                      com.ibm.wala.ipa.callgraph.ContextSelector appContextSelector,
                                      com.ibm.wala.ipa.callgraph.propagation.SSAContextInterpreter appContextInterpreter,
                                      int instancePolicy,
                                      boolean doOneCFA)
    • Method Detail

      • make

        public static JSCFABuilder make​(JSAnalysisOptions options,
                                        com.ibm.wala.ipa.callgraph.IAnalysisCacheView cache,
                                        com.ibm.wala.ipa.cha.IClassHierarchy cha,
                                        java.lang.ClassLoader cl,
                                        com.ibm.wala.ipa.callgraph.AnalysisScope scope,
                                        java.lang.String[] xmlFiles,
                                        byte instancePolicy,
                                        boolean doOneCFA)
        Parameters:
        options - options that govern call graph construction
        cha - governing class hierarchy
        cl - classloader that can find DOMO resources
        scope - representation of the analysis scope
        xmlFiles - set of Strings that are names of XML files holding bypass logic specifications.
        Returns:
        a 0-1-Opt-CFA Call Graph Builder.