http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55629



             Bug #: 55629

           Summary: Missed value numbering to a constant

    Classification: Unclassified

           Product: gcc

           Version: 4.8.0

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: tree-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: ste...@gcc.gnu.org





Consider a classic example of non-distributivity of constant propagation:



int foo (int);

int foo (int c) {

  int a, b;

  if (c) { a = 3; b = 2; }

  else { a = 2; b = 3; }

  return a + b;

}



Value numbering should be able to determine that a+b=5. GCC successfully

optimizes the test case to just "return 5" with -ftree-pre, but with "only"

-ftree-fre (-O1) the equivalence is not noticed.

Reply via email to