Class LocalSummaryEdges

java.lang.Object
com.ibm.wala.dataflow.IFDS.LocalSummaryEdges

public class LocalSummaryEdges extends Object
A set of summary edges for a particular procedure.
  • Constructor Details

    • LocalSummaryEdges

      public LocalSummaryEdges()
  • Method Details

    • insertSummaryEdge

      public void insertSummaryEdge(int s_p, int x, int d1, int d2)
      Record a summary edge for the flow d1 -> d2 from an entry s_p to an exit x.
      Parameters:
      s_p - local block number an entry
      x - local block number of an exit block
      d1 - source dataflow fact
      d2 - target dataflow fact
    • contains

      public boolean contains(int s_p, int x, int d1, int d2)
      Does a particular summary edge exist?
      Parameters:
      s_p - local block number an entry
      x - local block number of an exit block
      d1 - source dataflow fact
      d2 - target dataflow fact
    • getSummaryEdges

      public IntSet getSummaryEdges(int s_p, int x, int d1)
      Parameters:
      s_p - local block number an entry
      x - local block number of an exit block
      d1 - source dataflow fact
      Returns:
      set of d2 s.t. d1 -> d2 recorded as a summary edge for (s_p,x), or null if none
    • getInvertedSummaryEdgesForTarget

      public IntSet getInvertedSummaryEdgesForTarget(int s_p, int x, int d2)
      Note: This is inefficient. Use with care.
      Parameters:
      s_p - local block number an entry
      x - local block number of an exit block
      d2 - target dataflow fact
      Returns:
      set of d1 s.t. d1 -> d2 recorded as a summary edge for (s_p,x), or null if none