com.ibm.wala.cast.js.ipa.callgraph
Class JSZeroOrOneXCFABuilder

java.lang.Object
  extended by com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
      extended by com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
          extended by com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
              extended by com.ibm.wala.cast.js.ipa.callgraph.JSSSAPropagationCallGraphBuilder
                  extended by com.ibm.wala.cast.js.ipa.callgraph.JSCFABuilder
                      extended by com.ibm.wala.cast.js.ipa.callgraph.JSZeroOrOneXCFABuilder
All Implemented Interfaces:
CallGraphBuilder, HeapModel, InstanceKeyFactory, 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.js.ipa.callgraph.JSSSAPropagationCallGraphBuilder
JSSSAPropagationCallGraphBuilder.JSConstraintVisitor, JSSSAPropagationCallGraphBuilder.JSInterestingVisitor, JSSSAPropagationCallGraphBuilder.JSPointerAnalysisImpl
 
Nested classes/interfaces inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
AstSSAPropagationCallGraphBuilder.AstConstraintVisitor, AstSSAPropagationCallGraphBuilder.AstInterestingVisitor, AstSSAPropagationCallGraphBuilder.AstPointerAnalysisImpl
 
Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
SSAPropagationCallGraphBuilder.ConstraintVisitor, SSAPropagationCallGraphBuilder.InterestingVisitor
 
Nested classes/interfaces inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
PropagationCallGraphBuilder.ArrayLoadOperator, PropagationCallGraphBuilder.ArrayStoreOperator, PropagationCallGraphBuilder.FilterOperator, PropagationCallGraphBuilder.GetFieldOperator, PropagationCallGraphBuilder.InstanceArrayStoreOperator, PropagationCallGraphBuilder.InstancePutFieldOperator, PropagationCallGraphBuilder.InverseFilterOperator, PropagationCallGraphBuilder.MutableBoolean, PropagationCallGraphBuilder.PutFieldOperator, PropagationCallGraphBuilder.TypedPointerKey
 
Field Summary
 
Fields inherited from class com.ibm.wala.cast.js.ipa.callgraph.JSSSAPropagationCallGraphBuilder
DEBUG_LEXICAL, DEBUG_TYPE_INFERENCE
 
Fields inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
DEBUG_PROPERTIES
 
Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
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
JSZeroOrOneXCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy, boolean doOneCFA)
           
 
Method Summary
static JSCFABuilder make(AnalysisOptions options, AnalysisCache cache, IClassHierarchy cha, java.lang.ClassLoader cl, AnalysisScope scope, java.lang.String[] xmlFiles, byte instancePolicy, boolean doOneCFA)
           
 
Methods inherited from class com.ibm.wala.cast.js.ipa.callgraph.JSSSAPropagationCallGraphBuilder
addAssignmentsForCatchPointerKey, createEmptyCallGraph, getBaseURL, isConstantRef, isUncataloguedField, makeInterestingVisitor, makeSystem, makeTypeInference, makeVisitor, processCallingConstraints, setBaseURL, useObjectCatalog
 
Methods inherited from class com.ibm.wala.cast.ipa.callgraph.AstSSAPropagationCallGraphBuilder
hasNoInterestingUses, makeDefaultContextInterpreters, makeVisitor
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.SSAPropagationCallGraphBuilder
addBlockInstructionConstraints, addConstraintsFromNode, addNodeInstructionConstraints, addNodePassthruExceptionConstraints, 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, getInstanceKeyForClassObject, getInstanceKeyForConstant, getInstanceKeyForMultiNewArray, getInstanceKeys, getInstanceKeysForClass, getJavaLangObject, getMutableInstanceKeysForClass, getOptions, getPointerAnalysis, getPointerKeyFactory, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getPropagationSystem, getSolver, getTargetForCall, haveAlreadyVisited, isJavaLangObject, makeCallGraph, makeCallGraph, markAlreadyVisited, markChanged, markDiscovered, representsNullType, setContextInterpreter, setContextSelector, setInstanceKeys, 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, getInstanceKeyForClassObject, getInstanceKeyForConstant, getInstanceKeyForMultiNewArray
 
Methods inherited from interface com.ibm.wala.ipa.callgraph.propagation.PointerKeyFactory
getFilteredPointerKeyForLocal, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField
 

Constructor Detail

JSZeroOrOneXCFABuilder

public JSZeroOrOneXCFABuilder(IClassHierarchy cha,
                              AnalysisOptions options,
                              AnalysisCache cache,
                              ContextSelector appContextSelector,
                              SSAContextInterpreter appContextInterpreter,
                              int instancePolicy,
                              boolean doOneCFA)
Method Detail

make

public static JSCFABuilder make(AnalysisOptions options,
                                AnalysisCache cache,
                                IClassHierarchy cha,
                                java.lang.ClassLoader cl,
                                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.
dmd - deployment descriptor abstraction
Returns:
a 0-1-Opt-CFA Call Graph Builder.