This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/69999] [6 Regression] ICE in verify_loop_structure, at cfgloop.c:1639 (error: loop with header 3 not in loop tree) at -O3 or -Ofast
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 29 Feb 2016 19:46:50 +0000
- Subject: [Bug tree-optimization/69999] [6 Regression] ICE in verify_loop_structure, at cfgloop.c:1639 (error: loop with header 3 not in loop tree) at -O3 or -Ofast
- Auto-submitted: auto-generated
- References: <bug-69999-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69999
--- Comment #5 from Jeffrey A. Law <law at redhat dot com> ---
It's widely known that that node splitting can turn an irreducible loop into a
reducible loop. And that's precisely what's happening here. Sigh.
Something tells me that long term we may want some degree of rethinking how the
CFG manipulations and loop code interact, in the immediate term I think we can
resolve this case by noting when we duplicate an edge marked as
IRREDUCIBLE_LOOP to mark the loop structures as needing fixups.
Given the problems we've had with tying these updates to the low level edge
removal, I'm a bit gun-shy of doing something similar for block/edge
duplication.