accrue.analysis.antidep

## Class AntiDepAbsVal

- java.lang.Object
- - accrue.analysis.antidep.AntiDepAbsVal

- All Implemented Interfaces:
    Ordered<AntiDepAbsVal>, AbstractValue<AntiDepAbsVal>, java.lang.Cloneable

      public class AntiDepAbsVal
      extends java.lang.Object
      implements AbstractValue<AntiDepAbsVal>

  Track the uses and definitions of locations.
  Author:
    owen

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static AntiDepAbsVal` | `EMPTY`
    `protected java.util.Set<EdgeIdentifier>` | `ru` Uses reaching this node.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AntiDepAbsVal()`
    `AntiDepAbsVal(java.util.Set<EdgeIdentifier> ru)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `AntiDepAbsVal` | `addReachingUse(EdgeIdentifier d)`
    `boolean` | `equals(java.lang.Object obj)`
    `int` | `hashCode()`
    `boolean` | `isBottom()` An AbstractValue may indicate that it is the bottom element.
    `boolean` | `leq(AntiDepAbsVal that)` Is the given object less than or equal to this one
    `java.util.Set<EdgeIdentifier>` | `reachingUses()`
    `java.lang.String` | `toString()`
    `AntiDepAbsVal` | `upperBound(AntiDepAbsVal that)` Compute the upper bound of `this` and `o`
    `AntiDepAbsVal` | `widen(AntiDepAbsVal that)` Compute the widening operator on `this` and `o`.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ru

          protected final java.util.Set<EdgeIdentifier> ru

      Uses reaching this node.

    - #### EMPTY

          public static final AntiDepAbsVal EMPTY

  - ### Constructor Detail

    - #### AntiDepAbsVal

          public AntiDepAbsVal()

    - #### AntiDepAbsVal

          public AntiDepAbsVal(java.util.Set<EdgeIdentifier> ru)

  - ### Method Detail

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### addReachingUse

          public AntiDepAbsVal addReachingUse(EdgeIdentifier d)

    - #### reachingUses

          public java.util.Set<EdgeIdentifier> reachingUses()

    - #### widen

          public AntiDepAbsVal widen(AntiDepAbsVal that)

      Description copied from interface: `Ordered`
      Compute the widening operator on `this` and `o`. A widening operator is an upper bound where all ascending chains eventually stabilize.
      Specified by:
        `widen` in interface `Ordered<AntiDepAbsVal>`
      Parameters:
        `that` - object to widen with `this`
      Returns:
        Widened upper bound of `this` and `o`

    - #### leq

          public boolean leq(AntiDepAbsVal that)

      Description copied from interface: `Ordered`
      Is the given object less than or equal to this one
      Specified by:
        `leq` in interface `Ordered<AntiDepAbsVal>`
      Parameters:
        `that` - object to compare to `this`
      Returns:
        true if this is less than or equal to `o`

    - #### upperBound

          public AntiDepAbsVal upperBound(AntiDepAbsVal that)

      Description copied from interface: `Ordered`
      Compute the upper bound of `this` and `o`
      Specified by:
        `upperBound` in interface `Ordered<AntiDepAbsVal>`
      Parameters:
        `that` - object to upper bound with this
      Returns:
        the upper bound of `this` with `o`

    - #### isBottom

          public boolean isBottom()

      Description copied from interface: `AbstractValue`
      An AbstractValue may indicate that it is the bottom element. Note that the analysis monotonically increases abstract values, i.e., the bottom value is typically the initial, and most precise value.
      Specified by:
        `isBottom` in interface `AbstractValue<AntiDepAbsVal>`
      Returns:

    - #### equals

          public boolean equals(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`