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.