https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110298
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 Status|NEW |ASSIGNED --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- I will have a look. OK, so we unroll ("unloop") the middle-loop and the recorded loop father now no longer covers the sub-loops. We then end up value-numbering a part of the CFG that has defs used for later loop nb_iterations but value-numbering only substitutes into loop info of loops in the region it processes. Now, we free all nb_iterations but only after the CFG cleanup. The simple fix is to do that beforehand.