https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71466
--- Comment #8 from Jeffrey A. Law <law at redhat dot com> --- Jan, It's a nice theory, but if that were the case I'd expect we'd be having these problems before pulling the backwards threading bits into their own pass. I'm pretty sure the iterations data isn't even initialized when the first couple instances of the backwards threader are run. What is interesting about these tests is we're threading the backedge into a deeper point in the loop. That deeper point happens to also be the header of a nested loop. So there's some chance we've mucked up other aspects of the loop structures in an unexpected way. The three BZs are almost certainly the same issue though from looking at the CFGs and what jumps are being threaded.