https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85116

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Thu Apr 26 12:18:58 2018
New Revision: 259672

URL: https://gcc.gnu.org/viewcvs?rev=259672&root=gcc&view=rev
Log:
2018-04-26  Richard Biener  <rguent...@suse.de>

        PR tree-optimization/85116
        * tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should
        have a loop exit from the single latch predecessor.  Remove
        case of header with just condition.
        (ch_base::copy_headers): Exclude infinite loops from any
        processing.
        (pass_ch::execute): Record exits.

        * gcc.dg/tree-ssa/copy-headers-2.c: New testcase.
        * gcc.dg/tree-ssa/copy-headers-3.c: Likewise.
        * gcc.dg/tree-ssa/copy-headers-4.c: Likewise.
        * gcc.dg/tree-ssa/loadpre6.c: Adjust.

Added:
    trunk/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-2.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-3.c
    trunk/gcc/testsuite/gcc.dg/tree-ssa/copy-headers-4.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gcc.dg/tree-ssa/loadpre6.c
    trunk/gcc/tree-ssa-loop-ch.c

Reply via email to