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



--- Comment #10 from Dmitry G. Dyachenko <dimhen at gmail dot com> 2012-10-24 
12:50:01 UTC ---

(In reply to comment #7)

> This does not seem to reproduce for me. The following patch should however fix

> it.

> Index: tree-ssa-loop-ivcanon.c

> ===================================================================

> --- tree-ssa-loop-ivcanon.c     (revision 192711)

> +++ tree-ssa-loop-ivcanon.c     (working copy)

> @@ -364,6 +364,10 @@ loop_edge_to_cancel (struct loop *loop)

>         else

>           edge_to_cancel = EDGE_SUCC (edge_to_cancel->src, 0);

> 

> +      /* We only can handle conditionals.  */

> +      if (!(edge_to_cancel->flags & (EDGE_TRUE_VALUE | EDGE_FALSE_VALUE)))

> +       continue;

> +

>        /* We should never have conditionals in the loop latch. */

>        gcc_assert (edge_to_cancel->dest != loop->header);



192761 + patch

- pass bootstrap with --enable-checking=yes,df,fold,rtl,tree

- test from PR PASS



Thank You!

Reply via email to