https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66502
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Known to work| |10.3.1
Status|ASSIGNED |RESOLVED
--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #5)
> (In reply to Richard Biener from comment #4)
> > SCCVN preference changed. Missed optimization remains (now the other
> > variant).
>
> GCC 10 looks like it can handle both now. I don't know if that means this
> can be marked as fixed though.
So it looks like we now first value-number j to a (backedge not executable)
and in the second iteration (backedge executable) we value-number it to i.
I guess the special-casing of a single executable edge makes this work now
and also ensure we don't oscillate between both choices.