Details

    • Type: Improvement
    • Status: Closed
    • Priority: Low
    • Resolution: Fixed
    • Affects Version/s: 2.9.1, 2.9.0.1, 2.9.0
    • Fix Version/s: None
    • Component/s: Compiler: Optimizing
    • Labels:
      None
    • Environment:

      IA32 optimizing compiler builds

      Description

      Currently expression folding is performed on SSA. This is so that, for example:
      x = y + c1
      z = x + c2
      becoming:
      z = y + (c1 +c2)
      we know x won't have a different value other than the expression we're looking at. We can perform the same optimization locally (on a BB) if we track that the last assignment of x. This should mean we can cheaply run expression folding on low optimization levels.

      This is important as we often see cases of:
      boolean foo()

      { return x > 0; }

      ...
      if (foo())

      {....}

      whilst we convert foo into a "booleancmp_int x > 0" the subsequent ifcmp isn't folded. Expression folding would fold this example. Having reasonable expression folding would mean we could remove similar operations from BURS (these rules are often missing from PPC BURS to avoid having non-terminals).

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            ianrogers Ian Rogers added a comment -

            Fix in r13184, optimization run as part of Simple.

            Show
            ianrogers Ian Rogers added a comment - Fix in r13184, optimization run as part of Simple.

              People

              • Assignee:
                ianrogers Ian Rogers
                Reporter:
                ianrogers Ian Rogers
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: