This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]