Class ValueNumber

  • All Implemented Interfaces:
    java.lang.Comparable<ValueNumber>

    public class ValueNumber
    extends java.lang.Object
    implements java.lang.Comparable<ValueNumber>

    A "value number" is a value produced somewhere in a methods. We use value numbers as dataflow values in Frames. When two frame slots have the same value number, then the same value is in both of those slots.

    Instances of ValueNumbers produced by the same ValueNumberFactory are unique, so reference equality may be used to determine whether or not two value numbers are the same. In general, ValueNumbers from different factories cannot be compared.

    Author:
    David Hovemeyer
    See Also:
    ValueNumberAnalysis
    • Method Detail

      • mergeFlags

        public static int mergeFlags​(int flags1,
                                     int flags2)
      • createValueNumber

        public static ValueNumber createValueNumber​(int number,
                                                    int flags)
      • createValueNumber

        public static ValueNumber createValueNumber​(int number)
      • getNumber

        public int getNumber()
      • getFlags

        public int getFlags()
      • hasFlag

        public boolean hasFlag​(int flag)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • compareTo

        public int compareTo​(ValueNumber other)
        Specified by:
        compareTo in interface java.lang.Comparable<ValueNumber>