https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106679
Aldy Hernandez <aldyh at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at gcc dot gnu.org --- Comment #3 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- (In reply to seurer from comment #0) > g:5adfb6540db95da5faf1f77fbe9ec38b4cf8eb1f, r13-2098-g5adfb6540db95d > make -k check-gcc RUNTESTFLAGS="tree-prof.exp=gcc.dg/tree-prof/cmpsf-1.c" > FAIL: gcc.dg/tree-prof/cmpsf-1.c scan-tree-dump-not dom2 "Invalid sum" > # of expected passes 4 > # of unexpected failures 1 > # of unsupported tests 1 > > commit 5adfb6540db95da5faf1f77fbe9ec38b4cf8eb1f (HEAD, refs/bisect/bad) > Author: Aldy Hernandez <al...@redhat.com> > Date: Wed Aug 17 17:47:21 2022 +0200 > > Reset root oracle from path_oracle::reset_path. Before this patch, we nuked the path sensitive relational oracle when we crossed a backedge, causing us to be dumber on subsequent requests from the path solver. With the patch in place, we're threading more paths earlier (threadfull1 instead of DOM2), which presumably is messing up the probabilities. The generic BB copier the backward threader uses is known to not keep good track of probabilities. It is a known limitation, and there is at least one PR (??) open for this. The reason we're seeing this now is two fold: first, because we're no longer destroying the path oracle, and second because ranger now handles floats which this test stresses. Perhaps we could add -fdisable-tree-threadfull1 to the test, since it was originally testing changes in DOM threading.