https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102997
--- Comment #13 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- Since DOM is the only threading pass that keeps more or less accurate profiling data, here's a very wild guess. The pre-loop DOM threading pass does not thread some paths because of the restrictions in place, which causes one of the post-loop backward threaders (thread2 or threadfull2) to pick them up. These will likely not produce accurate profile info. And I would also guess that the reason DOM3 (post loop) did not pick up the threads was because the IL was sufficiently complicated for the simple path discovery bits in the forward threader to catch. This is all highly speculative, but that's the only scenario I can imagine where this commit caused a profiling regression.