Interface ValueNumberAnalysisFeatures

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static boolean REDUNDANT_LOAD_ELIMINATION
      When set, perform redundant load elimination and forward substitution.
      static boolean RLE_DEBUG
      Debug redundant load elimination.
    • Field Detail

      • REDUNDANT_LOAD_ELIMINATION

        static final boolean REDUNDANT_LOAD_ELIMINATION

        When set, perform redundant load elimination and forward substitution. Note that we do not do this in a correctness-preserving way! For example, we don't kill loads when methods are called, even though those methods could change heap values. The intent here is simply to try to handle situations where a field is read multiple times, where the intent of the programmer is clearly that the loaded values will be the same in each case.

        Eventually, we might do interprocedural analysis that would allow accurate modeling of which fields a called method could modify, which would allow a more correct implementation.

      • RLE_DEBUG

        static final boolean RLE_DEBUG
        Debug redundant load elimination.