https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121720
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Richard Biener from comment #7) > (In reply to Richard Biener from comment #6) > > So the issue is not the rev. in question (well, it triggers it). PRE should > > still work since there is the unconditional dereference in the loop. And it > > does when we allow ANTIC_IN to grow again during iteration > > (r8-7285-gec64ffc8501c20 installed something to limit this). > > > > Of course it's testcase now still works, even w/o its fix. I'll see to > > understand if the issue in the old PR is now fixed by other means > > (gcc.dg/torture/pr84830.c). > > The issue is still there. I'll make a gimple testcase out of it. It's also a very unfortunate one, suffering from connect_infinite_loops_to_exit making a very bad decision leading to 6 unvisited edges in a single CFG cycle. I think that is also one reason for the oscillation - we basically intermangle multiple ANTIC iterations this way. This _might_ be not avoidable in general, but the testcase is a regular loop where the fake exit edge was chosen badly placed.