|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.ibm.wala.ipa.callgraph.propagation.PropagationCallGraphBuilder
com.ibm.wala.ipa.callgraph.propagation.rta.AbstractRTABuilder
public abstract class AbstractRTABuilder
Abstract superclass of various RTA flavors
| Nested Class Summary |
|---|
| Field Summary | |
|---|---|
protected java.util.HashSet<IClass> |
allocatedClasses
set of classes (IClass) discovered to be allocated |
protected java.util.Set<IClass> |
clinitProcessed
set of classes whose clinit are processed |
protected boolean |
clone2Assign
Should we change calls to clone() to assignments? |
protected static boolean |
DEBUG
|
protected static int |
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 | |
|---|---|
protected |
AbstractRTABuilder(IClassHierarchy cha,
AnalysisOptions options,
AnalysisCache cache,
ContextSelector appContextSelector,
SSAContextInterpreter appContextInterpreter)
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final int DEBUG_LEVEL
protected static final boolean DEBUG
protected final boolean clone2Assign
protected final java.util.Set<IClass> clinitProcessed
protected final java.util.HashSet<IClass> allocatedClasses
| Constructor Detail |
|---|
protected AbstractRTABuilder(IClassHierarchy cha,
AnalysisOptions options,
AnalysisCache cache,
ContextSelector appContextSelector,
SSAContextInterpreter appContextInterpreter)
| Method Detail |
|---|
protected RTAContextInterpreter getRTAContextInterpreter()
protected boolean addConstraintsFromNode(CGNode node,
MonitorUtil.IProgressMonitor monitor)
addConstraintsFromNode in class PropagationCallGraphBuilderprotected void processClassInitializer(IClass klass)
public void visitInvoke(CGNode node,
CallSiteReference site)
java.lang.IllegalArgumentException - if site is null
protected abstract UnaryOperator<PointsToSetVariable> makeDispatchOperator(CallSiteReference site,
CGNode node)
protected abstract PointerKey getKeyForSite(CallSiteReference site)
public void visitNew(CGNode node,
NewSiteReference newSite)
java.lang.IllegalArgumentException - if newSite is null
protected abstract void updateSetsForNewClass(IClass klass,
InstanceKey iKey,
CGNode node,
NewSiteReference ns)
klass - protected void customInit()
customInit in class PropagationCallGraphBuilderpublic java.util.Set<IClass> getAllocatedTypes()
protected IPointsToSolver makeSolver()
makeSolver in class PropagationCallGraphBuilderprotected ContextSelector makeContextSelector(ContextSelector appContextSelector)
protected SSAContextInterpreter makeContextInterpreter(SSAContextInterpreter appContextInterpreter)
protected boolean unconditionallyAddConstraintsFromNode(CGNode node,
MonitorUtil.IProgressMonitor monitor)
unconditionallyAddConstraintsFromNode in class PropagationCallGraphBuilder
protected ExplicitCallGraph createEmptyCallGraph(IClassHierarchy cha,
AnalysisOptions options)
createEmptyCallGraph in class PropagationCallGraphBuilderprotected PropagationSystem makeSystem(AnalysisOptions options)
makeSystem in class PropagationCallGraphBuilderpublic PointerAnalysis getPointerAnalysis()
getPointerAnalysis in interface CallGraphBuildergetPointerAnalysis in class PropagationCallGraphBuilder
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||