|
|||||||||
| 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, CUTOFF, DEBUG_GENERAL, entrypointCallSites, filterOperator, instanceKeyFactory, inverseFilterOperator, options, pointerKeyFactory, system, THROWABLE_SET |
| Constructor Summary | |
|---|---|
protected |
AbstractRTABuilder(ClassHierarchy cha,
WarningSet warnings,
AnalysisOptions options,
ContextSelector appContextSelector,
SSAContextInterpreter appContextInterpreter,
ReflectionSpecification reflect)
|
| 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(ClassHierarchy cha,
WarningSet warnings,
AnalysisOptions options,
ContextSelector appContextSelector,
SSAContextInterpreter appContextInterpreter,
ReflectionSpecification reflect)
| Method Detail |
|---|
protected RTAContextInterpreter getRTAContextInterpreter()
protected boolean addConstraintsFromNode(CGNode node)
addConstraintsFromNode in class PropagationCallGraphBuilderprotected void processClassInitializer(IClass klass)
klass -
public void visitInvoke(CGNode node,
CallSiteReference site)
java.lang.IllegalArgumentException - if site is null
protected abstract UnaryOperator 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,
ReflectionSpecification reflect,
WarningSet warnings)
protected boolean unconditionallyAddConstraintsFromNode(CGNode node)
unconditionallyAddConstraintsFromNode in class PropagationCallGraphBuilder
protected ExplicitCallGraph createEmptyCallGraph(ClassHierarchy 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 | ||||||||