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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2022-09-07
   Target Milestone|---                         |12.3
             Status|UNCONFIRMED                 |ASSIGNED

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

static bool
split_loop (class loop *loop1)
{
...
        /* Fix first loop's exit probability after scaling.  */
        edge exit_to_latch1 = single_pred_edge (loop1->latch);

I think it's a misconception that latches are guaranteed to have a single
predecessor.  With LOOPS_HAVE_SIMPLE_LATCHES we have a single _successor_.

The CFG is also very different than expected, with a lot of code on the
"latch" (a whole subloop is there).

Reply via email to