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

--- Comment #5 from bin.cheng <amker.cheng at gmail dot com> ---
Vrp1 generates below code:


  <bb 3>:
  if (b_elt_11(D) != 0B)
    goto <bb 4>;
  else
    goto <bb 8>;

  <bb 4>:
  # kill_elt_10 = PHI <kill_elt_4(3)>
  goto <bb 6>;

  <bb 5>:
  kill_elt_14 = kill_elt_2->next;

  <bb 6>:
  # kill_elt_2 = PHI <kill_elt_10(4), kill_elt_14(5)>
  if (kill_elt_2 != 0B)
    goto <bb 7>;
  else
    goto <bb 19>;

  <bb 7>:
  _12 = kill_elt_2->indx;
  _13 = b_elt_11(D)->indx;
  if (_12 < _13)
    goto <bb 5>;
  else
    goto <bb 20>;

...


  <bb 18>:
  goto <bb 14>;

  <bb 19>:
  # kill_elt_41 = PHI <0B(6)>
  if (b_elt_11(D) != 0B)
    goto <bb 18>;
  else
    goto <bb 14>;

The whole bb 19 is unnecessary since we know "b_elt_11(D) != 0" holds.

Reply via email to