https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101555
--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Btw, it behaves as "intended": > grep -i iteration Vara___024root__114.cpp.138t.pre RPO iteration over 1050 blocks visited 1050 blocks in total discovering 1050 executable blocks iterating 1.0 times, a block was visited max. 1 times Starting iteration 0 Starting iteration 1 Starting insert iteration 1 worklist iteration #1 so all "iterating" stuff proceeds optimally. > grep 'Insert' Vara___024root__114.cpp.138t.pre | wc -l 398400 so that's a lot of inserts. GCC 11 has the same. Compared to GCC 11 PRE and VN didn't change in any significant way, so I'm really wondering what this is about. The IL into PRE is also quite similar.