Class PointsToMap


  • public class PointsToMap
    extends Object
    An object that tracks the mapping between pointer keys and points-to set variables
    • Constructor Detail

      • PointsToMap

        public PointsToMap()
    • Method Detail

      • iterateKeys

        public Iterator<PointerKey> iterateKeys()
        Returns:
        iterator of all PointerKeys tracked
      • recordImplicit

        public void recordImplicit​(PointerKey key)
        record that a particular points-to-set is represented implicitly
      • recordUnified

        public void recordUnified​(PointerKey key)
        record that a particular points-to-set has been unioned with another
      • recordTransitiveRoot

        public void recordTransitiveRoot​(PointerKey key)
        record points-to-sets that are "roots" of the transitive closure. These points-to-sets can't be thrown away for a pre-transitive solver. A "root" is a points-to-set whose contents do not result from flow from other points-to-sets; there points-to-sets are the primordial assignments from which the transitive closure flows.
      • isUnified

        public boolean isUnified​(PointerKey p)
      • isImplicit

        public boolean isImplicit​(PointerKey p)
      • getNumberOfPointerKeys

        protected int getNumberOfPointerKeys()
      • revertToPreTransitive

        public void revertToPreTransitive()
        Wipe out the cached transitive closure information
      • unify

        public void unify​(int i,
                          int j)
        Unify the points-to-sets for the variables with numbers i and j
      • getIndex

        public int getIndex​(PointerKey p)
        Returns:
        the unique integer that identifies this pointer key
      • getRepresentative

        public int getRepresentative​(int i)