com.ibm.wala.ipa.callgraph.propagation.cfa
Class ZeroXContainerCFABuilder

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.ipa.callgraph.propagation.cfa.ZeroXCFABuilder
              extended by com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXContainerCFABuilder
All Implemented Interfaces:
CallGraphBuilder, HeapModel, InstanceKeyFactory, PointerKeyFactory

public class ZeroXContainerCFABuilder
extends ZeroXCFABuilder

0-X-CFA Call graph builder which analyzes calls to "container methods" in a context which is defined by the receiver instance.


Nested Class Summary
 
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.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
ZeroXContainerCFABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector appContextSelector, SSAContextInterpreter appContextInterpreter, int instancePolicy)
           
 
Method Summary
protected  ContextSelector makeContainerContextSelector(IClassHierarchy cha, ZeroXInstanceKeys keys)
           
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.cfa.ZeroXCFABuilder
make, make, makeInstanceKeys
 
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, hasNoInterestingUses, hasUniqueCatchBlock, isConstantRef, iterateCrossProduct, iteratePointerKeys, makeInterestingVisitor, makeSolver, makeVisitor, processCallingConstraints, unconditionallyAddConstraintsFromNode
 
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
addAssignmentsForCatchPointerKey, addConstraintsFromChangedNode, addConstraintsFromNewNodes, assignInstanceToCatch, catches, createEmptyCallGraph, 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, makeSystem, 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

ZeroXContainerCFABuilder

public ZeroXContainerCFABuilder(IClassHierarchy cha,
                                AnalysisOptions options,
                                AnalysisCache cache,
                                ContextSelector appContextSelector,
                                SSAContextInterpreter appContextInterpreter,
                                int instancePolicy)
Parameters:
cha - governing class hierarchy
options - call graph construction options
appContextSelector - application-specific logic to choose contexts
appContextInterpreter - application-specific logic to interpret a method in context
Throws:
java.lang.IllegalArgumentException - if options is null
Method Detail

makeContainerContextSelector

protected ContextSelector makeContainerContextSelector(IClassHierarchy cha,
                                                       ZeroXInstanceKeys keys)
Returns:
an object which creates contexts for call graph nodes based on the container disambiguation policy