public class PointerAnalysisImpl extends AbstractPointerAnalysis
Modifier and Type | Class and Description |
---|---|
protected class |
PointerAnalysisImpl.HModel |
static class |
PointerAnalysisImpl.ImplicitPointsToSetVisitor |
Modifier and Type | Field and Description |
---|---|
protected PropagationCallGraphBuilder |
builder |
protected PointerKeyFactory |
pointerKeys
An object that abstracts how to model pointers in the heap.
|
instanceKeys
Constructor and Description |
---|
PointerAnalysisImpl(PropagationCallGraphBuilder builder,
CallGraph cg,
PointsToMap pointsToMap,
MutableMapping<InstanceKey> instanceKeys,
PointerKeyFactory pointerKeys,
InstanceKeyFactory iKeyFactory) |
Modifier and Type | Method and 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() |
getCallGraph, getHeapGraph, getInstanceKeyMapping, getInstanceKeys
protected final PointerKeyFactory pointerKeys
protected final PropagationCallGraphBuilder builder
public PointerAnalysisImpl(PropagationCallGraphBuilder builder, CallGraph cg, PointsToMap pointsToMap, MutableMapping<InstanceKey> instanceKeys, PointerKeyFactory pointerKeys, InstanceKeyFactory iKeyFactory)
protected HeapModel makeHeapModel()
public OrdinalSet<InstanceKey> getPointsToSet(PointerKey key)
key
- representative of an equivalence class of pointerspublic boolean isFiltered(PointerKey key)
protected PointerAnalysisImpl.ImplicitPointsToSetVisitor makeImplicitPointsToVisitor(LocalPointerKey lpk)
public OrdinalSet<InstanceKey> computeImplicitPointsToSetAtGet(CGNode node, FieldReference field, int refVn, boolean isStatic)
public HeapModel getHeapModel()
public Iterable<PointerKey> getPointerKeys()
public IClassHierarchy getClassHierarchy()