Class LocalSummaryEdges


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

      • LocalSummaryEdges

        public LocalSummaryEdges()
    • Method Detail

      • 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