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:
    Serialized Form