[Bug rtl-optimization/55740] [4.8 Regression] ICE in verify_loop_structure, at cfgloop.c:1582, error: loop 2's header does not belong directly to it
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Dec 19 15:13:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55740
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Component|middle-end |rtl-optimization
AssignedTo|unassigned at gcc dot |rguenth at gcc dot gnu.org
|gnu.org |
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> 2012-12-19 15:12:56 UTC ---
And it's of course after RTL CSE ...
Which ends up merging two loop headers as we cross-jumped the tails ...
/* If we merge a loop header into its predecessor, update the loop
structure. */
if (current_loops != NULL)
{
if (b->loop_father->header == b)
{
remove_bb_from_loops (a);
add_bb_to_loop (a, b->loop_father);
a->loop_father->header = a;
}
remove_bb_from_loops (b);
}
Which looks broken if a is already a loop header. I have a patch.
More information about the Gcc-bugs
mailing list