[Bug tree-optimization/68619] [6 Regression] error: loop with header 6 not in loop tree

law at redhat dot com gcc-bugzilla@gcc.gnu.org
Mon Nov 30 17:53:00 GMT 2015


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

Jeffrey A. Law <law at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED

--- Comment #4 from Jeffrey A. Law <law at redhat dot com> ---
r228739 may have been the trigger, but I think it's uncovering a latent bug in
DOM.  At first glance it looks like DOM is removing an edge when it simplifies
a conditional.  That in turn seems to expose two subloops that were previously
ignored because they were irreducible -- with the edge removed, those two
subloops become reducible.

Once the loops are reducible, the loop optimizer wants them to have proper loop
structures.  They don't and verify_loop_structure aborts. 

Richi had the suggestion that we should defer those particular CFG
manipulations in DOM, which has been on my TODO list.  That fixes this problem
(the CFG cleanup code will set LOOPS_NEED_FIXUP, which DOM avoids per Richi's
request). 

I've been wanted to analyze any unexpected side effects of doing that, so, now
seems to be the right time.


More information about the Gcc-bugs mailing list