Class PointerAnalysisImpl
- java.lang.Object
-
- com.ibm.wala.ipa.callgraph.propagation.AbstractPointerAnalysis
-
- com.ibm.wala.ipa.callgraph.propagation.PointerAnalysisImpl
-
- All Implemented Interfaces:
PointerAnalysis<InstanceKey>
- Direct Known Subclasses:
AstSSAPropagationCallGraphBuilder.AstPointerAnalysisImpl
public class PointerAnalysisImpl extends AbstractPointerAnalysis
General representation of the results of pointer analysis
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
PointerAnalysisImpl.HModel
static class
PointerAnalysisImpl.ImplicitPointsToSetVisitor
-
Field Summary
Fields Modifier and Type Field Description protected PropagationCallGraphBuilder
builder
protected PointerKeyFactory
pointerKeys
An object that abstracts how to model pointers in the heap.-
Fields inherited from class com.ibm.wala.ipa.callgraph.propagation.AbstractPointerAnalysis
instanceKeys
-
-
Constructor Summary
Constructors Constructor Description PointerAnalysisImpl(PropagationCallGraphBuilder builder, CallGraph cg, PointsToMap pointsToMap, MutableMapping<InstanceKey> instanceKeys, PointerKeyFactory pointerKeys, InstanceKeyFactory iKeyFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description OrdinalSet<InstanceKey>
computeImplicitPointsToSetAtGet(CGNode node, FieldReference field, int refVn, boolean isStatic)
IClassHierarchy
getClassHierarchy()
HeapModel
getHeapModel()
Iterable<PointerKey>
getPointerKeys()
OrdinalSet<InstanceKey>
getPointsToSet(PointerKey key)
boolean
isFiltered(PointerKey key)
did the pointer analysis use a type filter for a given points-to set? (this is ugly).protected HeapModel
makeHeapModel()
protected PointerAnalysisImpl.ImplicitPointsToSetVisitor
makeImplicitPointsToVisitor(LocalPointerKey lpk)
String
toString()
-
Methods inherited from class com.ibm.wala.ipa.callgraph.propagation.AbstractPointerAnalysis
getCallGraph, getHeapGraph, getInstanceKeyMapping, getInstanceKeys
-
-
-
-
Field Detail
-
pointerKeys
protected final PointerKeyFactory pointerKeys
An object that abstracts how to model pointers in the heap.
-
builder
protected final PropagationCallGraphBuilder builder
-
-
Constructor Detail
-
PointerAnalysisImpl
public PointerAnalysisImpl(PropagationCallGraphBuilder builder, CallGraph cg, PointsToMap pointsToMap, MutableMapping<InstanceKey> instanceKeys, PointerKeyFactory pointerKeys, InstanceKeyFactory iKeyFactory)
-
-
Method Detail
-
makeHeapModel
protected HeapModel makeHeapModel()
-
getPointsToSet
public OrdinalSet<InstanceKey> getPointsToSet(PointerKey key)
- Parameters:
key
- representative of an equivalence class of pointers- Returns:
- Set of InstanceKey, representing the instance abstractions that define the points-to set computed for the pointer key
-
isFiltered
public boolean isFiltered(PointerKey key)
did the pointer analysis use a type filter for a given points-to set? (this is ugly).
-
makeImplicitPointsToVisitor
protected PointerAnalysisImpl.ImplicitPointsToSetVisitor makeImplicitPointsToVisitor(LocalPointerKey lpk)
-
computeImplicitPointsToSetAtGet
public OrdinalSet<InstanceKey> computeImplicitPointsToSetAtGet(CGNode node, FieldReference field, int refVn, boolean isStatic)
-
getHeapModel
public HeapModel getHeapModel()
- Returns:
- an Object that determines how to model abstract locations in the heap.
-
getPointerKeys
public Iterable<PointerKey> getPointerKeys()
- Returns:
- all pointer keys known
-
getClassHierarchy
public IClassHierarchy getClassHierarchy()
-
-