public abstract class PointsToGraph
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected HeapAbstractionFactory |
af |
protected PointsToEngine |
engine |
protected boolean |
solved
Has this graph been solved yet?
Various methods shoudl only be called once the points to graph
inference has finished.
|
Constructor and Description |
---|
PointsToGraph(HeapAbstractionFactory af) |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
addCall(PointsToEngine.StmtAndContext sac,
polyglot.types.CodeInstance caller,
CContext callerContext,
polyglot.types.ProcedureInstance callee,
CContext calleeContext,
polyglot.util.Position origin) |
abstract boolean |
addEdge(PointsToEngine.StmtAndContext sac,
PointsToGraphNode src,
HContext trg,
polyglot.util.Position origin) |
abstract boolean |
addEdges(PointsToEngine.StmtAndContext sac,
PointsToGraphNode src,
java.util.Set<HContext> trgs,
polyglot.util.Position origin) |
abstract accrue.analysis.pointer.CallGraph |
callGraph() |
abstract void |
dump(java.io.PrintStream out)
Dump the graph in a human readable form.
|
abstract void |
dumpPointsToGraph(int level)
Dump the graph in GraphViz dot format.
|
abstract long |
edgeSize() |
boolean |
equals(java.lang.Object obj) |
abstract java.util.Set<CContext> |
getContexts(polyglot.types.CodeInstance pi) |
int |
hashCode() |
long |
nodeSize() |
abstract java.util.Set<HContext> |
pointsTo(PointsToEngine.StmtAndContext sac,
PointsToGraphNode r) |
java.util.Set<HContext> |
pointsTo(PointsToGraphNode r) |
java.util.Set<HContext> |
pointsToFiltered(PointsToGraphNode r,
polyglot.types.Type t) |
java.util.Set<HContext> |
pointsToFiltered(PointsToGraphNode r,
polyglot.types.Type t,
java.util.Set<polyglot.types.Type> notT) |
protected final HeapAbstractionFactory af
protected PointsToEngine engine
protected boolean solved
public PointsToGraph(HeapAbstractionFactory af)
public final java.util.Set<HContext> pointsTo(PointsToGraphNode r)
public final java.util.Set<HContext> pointsToFiltered(PointsToGraphNode r, polyglot.types.Type t)
public final java.util.Set<HContext> pointsToFiltered(PointsToGraphNode r, polyglot.types.Type t, java.util.Set<polyglot.types.Type> notT)
public abstract boolean addEdges(PointsToEngine.StmtAndContext sac, PointsToGraphNode src, java.util.Set<HContext> trgs, polyglot.util.Position origin)
public abstract boolean addEdge(PointsToEngine.StmtAndContext sac, PointsToGraphNode src, HContext trg, polyglot.util.Position origin)
public abstract boolean addCall(PointsToEngine.StmtAndContext sac, polyglot.types.CodeInstance caller, CContext callerContext, polyglot.types.ProcedureInstance callee, CContext calleeContext, polyglot.util.Position origin)
public abstract java.util.Set<HContext> pointsTo(PointsToEngine.StmtAndContext sac, PointsToGraphNode r)
public abstract java.util.Set<CContext> getContexts(polyglot.types.CodeInstance pi)
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public abstract void dump(java.io.PrintStream out)
out
- public abstract void dumpPointsToGraph(int level)
out
- public long nodeSize()
public abstract long edgeSize()
public abstract accrue.analysis.pointer.CallGraph callGraph()