[Bug tree-optimization/25485] New: VRP misses an "if" statement that could be optimized away

kazu at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Dec 18 19:06:00 GMT 2005


Consider:

int
foo (int a, int b)
{
  if (a > 50)
    return 19;
  if (a > 63 && b < 50)
    return 17;
  return 31;
}

VRP does not optimize away the second "if" statement.

Here is the output from VRP.

foo (a, b)
{
  _Bool D.1662;
  _Bool D.1661;
  _Bool D.1660;
  int D.1659;

<bb 2>:
  if (a_2 > 50) goto <L4>; else goto <L1>;

<L1>:;
  D.1660_4 = 0;
  D.1661_6 = b_5 <= 49;
  D.1662_7 = 0;
  if (D.1662_7) goto <L2>; else goto <L4>;

<L2>:;

  # D.1659_1 = PHI <19(2), 17(4), 31(3)>;
<L4>:;
  return D.1659_1;

}


-- 
           Summary: VRP misses an "if" statement that could be optimized
                    away
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: enhancement
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: kazu at gcc dot gnu dot org
GCC target triplet: x86_64-pc-linux-gnu


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



More information about the Gcc-bugs mailing list