[Bug tree-optimization/111878] [14 Regression] ICE: in get_loop_exit_edges, at cfgloop.cc:1204 with -O3 -fgraphite-identity -fsave-optimization-record/-fdump-tree-graphite/-fopt-info since r14-4708-gd65e38e616e7ac

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Nov 16 12:12:19 GMT 2023


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

--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfchris@gcc.gnu.org>:

https://gcc.gnu.org/g:7a496b7ce105185be12e023e749c90d5f7561879

commit r14-5529-g7a496b7ce105185be12e023e749c90d5f7561879
Author: Tamar Christina <tamar.christina@arm.com>
Date:   Thu Nov 16 12:11:22 2023 +0000

    middle-end: skip checking loop exits if loop malformed [PR111878]

    Before my refactoring if the loop->latch was incorrect then
find_loop_location
    skipped checking the edges and would eventually return a dummy location.

    It turns out that a loop can have
    loops_state_satisfies_p (LOOPS_HAVE_RECORDED_EXITS) but also not have a
latch
    in which case get_loop_exit_edges traps.

    This restores the old behavior.

    gcc/ChangeLog:

            PR tree-optimization/111878
            * tree-vect-loop-manip.cc (find_loop_location): Skip edges check if
            latch incorrect.

    gcc/testsuite/ChangeLog:

            PR tree-optimization/111878
            * gcc.dg/graphite/pr111878.c: New test.


More information about the Gcc-bugs mailing list