Class BasicRTABuilder
- java.lang.Object
-
- com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
-
- com.ibm.wala.ipa.callgraph.propagation.rta.AbstractRTABuilder
-
- com.ibm.wala.ipa.callgraph.propagation.rta.BasicRTABuilder
-
- All Implemented Interfaces:
CallGraphBuilder
public class BasicRTABuilder extends AbstractRTABuilder
TODO: refactor to eliminate more redundancy with SSACallGraphBuilder
-
-
Nested Class Summary
-
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.rta.AbstractRTABuilder
allocatedClasses, clinitProcessed, clone2Assign, DEBUG, DEBUG_LEVEL
-
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 BasicRTABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector contextSelector, SSAContextInterpreter contextInterpreter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected RTASelectorKey
getKeyForSelector(Selector selector)
protected PointerKey
getKeyForSite(CallSiteReference site)
protected UnaryOperator<PointsToSetVariable>
makeDispatchOperator(CallSiteReference site, CGNode node)
protected void
updateSetsForNewClass(IClass klass, InstanceKey iKey, CGNode node, NewSiteReference n)
Perform needed bookkeeping when a new class is discovered.-
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.rta.AbstractRTABuilder
addConstraintsFromNode, createEmptyCallGraph, customInit, getAllocatedTypes, getPointerAnalysis, getRTAContextInterpreter, makeContextInterpreter, makeContextSelector, makeSolver, makeSystem, processClassInitializer, unconditionallyAddConstraintsFromNode, visitInvoke, visitNew
-
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
addAssignmentsForCatchPointerKey, addConstraintsFromChangedNode, addConstraintsFromNewNodes, assignInstanceToCatch, catches, filterForClass, getAnalysisCache, getCallGraph, getClassHierarchy, getContextInterpreter, getContextSelector, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getFilteredPointerKeyForLocal, getInstanceKeyForAllocation, getInstanceKeyForConstant, getInstanceKeyForMetadataObject, getInstanceKeyForMultiNewArray, getInstanceKeys, getInstanceKeysForClass, getJavaLangObject, getMutableInstanceKeysForClass, getOptions, getPointerKeyFactory, getPointerKeyForArrayContents, getPointerKeyForExceptionalReturnValue, getPointerKeyForInstanceField, getPointerKeyForLocal, getPointerKeyForReturnValue, getPointerKeyForStaticField, getPropagationSystem, getSolver, getSystem, getTargetForCall, haveAlreadyVisited, isJavaLangObject, makeCallGraph, makeCallGraph, markAlreadyVisited, markChanged, markDiscovered, representsNullType, setContextInterpreter, setContextSelector, setInstanceKeys, setPointerKeyFactory, wasChanged
-
-
-
-
Constructor Detail
-
BasicRTABuilder
public BasicRTABuilder(IClassHierarchy cha, AnalysisOptions options, AnalysisCache cache, ContextSelector contextSelector, SSAContextInterpreter contextInterpreter)
-
-
Method Detail
-
updateSetsForNewClass
protected void updateSetsForNewClass(IClass klass, InstanceKey iKey, CGNode node, NewSiteReference n)
Perform needed bookkeeping when a new class is discovered.- Specified by:
updateSetsForNewClass
in classAbstractRTABuilder
-
getKeyForSite
protected PointerKey getKeyForSite(CallSiteReference site)
- Specified by:
getKeyForSite
in classAbstractRTABuilder
-
getKeyForSelector
protected RTASelectorKey getKeyForSelector(Selector selector)
-
makeDispatchOperator
protected UnaryOperator<PointsToSetVariable> makeDispatchOperator(CallSiteReference site, CGNode node)
- Specified by:
makeDispatchOperator
in classAbstractRTABuilder
-
-