http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55833
--- Comment #7 from Marek Polacek <mpolacek at gcc dot gnu.org> 2013-01-10 15:11:34 UTC --- (In reply to comment #6) > By unswitching on an exit test that exits to the enclosing loop we create > an unswitched loop that is now reached by what looks like an exit test > of the outer loop which is part of an irreducible region. > > I'm not sure we can reliably detect all cases we need to manually mark > the entry edge for. So ... re-mark_irreducible_loops () after each > transform? Yeah, I'm looking into this for quite some time now and this occurred me too. I'm going to prepare some patch (together with your version of cheaper checking).