Class SimpleDemandPointerFlowGraph

All Implemented Interfaces:
EdgeManager<Object>, Graph<Object>, NodeManager<Object>, NumberedEdgeManager<Object>, NumberedGraph<Object>, NumberedNodeManager<Object>, Serializable, Iterable<Object>

public class SimpleDemandPointerFlowGraph extends SlowSparseNumberedGraph<Object>
The nodes in this graph are PointerKeys corresponding to local variables and static fields, InstanceKeys, and FieldRefs (see below).

This graph is constructed on-demand during a traversal.

The edges represent

  • flow from local -> local representing assignment (i.e. phi,pi)
  • flow from instancekey -> local for news
  • flow from formal -> actual parameter
  • flow from return value -> local
  • match edges
  • local -> local edges representing loads/stores (e.g. x = y.f will have a edge x->y, labelled with f) for a getstatic x = Y.f, we have an edge from x -> Y.f.
N.B: Edges go OPPOSITE the flow of values.

Edges carry labels if they arise from loads/stores, or calls

See Also: