public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug middle-end/110590] New: Failing CFG consistency testcases @ 2023-07-07 17:12 hubicka at gcc dot gnu.org 2023-07-07 17:16 ` [Bug middle-end/110590] " hubicka at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: hubicka at gcc dot gnu.org @ 2023-07-07 17:12 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110590 Bug ID: 110590 Summary: Failing CFG consistency testcases Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: hubicka at gcc dot gnu.org Target Milestone: --- there are 3 testcases that checks for Invalid sum but fogets to enable blocks-details which fails after this is fixed: gcc.dg/tree-ssa/loop-ch-profile-1.c here the problem is that loop header dulication introduces loop invariant conditoinal that is later updated by tree-ssa-dom but dom does not take care of updating profile. Since loop-ch knows when it duplicates loop invariant, we may be able to get this right. The test is still useful since it tests that right after ch profile is consistent. gcc.dg/tree-prof/update-cunroll-2.c This is about profile updating code in duplicate_loop_body_to_header_edge being wrong when optimized out exit is not last in the loop. In that case the probability of later exits needs to be accounted in. I will think about making this better - in general this does not seem to have easy solution, but for special case of chained tests we can definitely account for the later exits. gcc.dg/tree-ssa/update-unroll-1.c This fails after aprefetch invoked unrolling. I did not look into details yet. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/110590] Failing CFG consistency testcases 2023-07-07 17:12 [Bug middle-end/110590] New: Failing CFG consistency testcases hubicka at gcc dot gnu.org @ 2023-07-07 17:16 ` hubicka at gcc dot gnu.org 2023-07-07 21:00 ` hubicka at gcc dot gnu.org 2023-07-08 15:38 ` cvs-commit at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: hubicka at gcc dot gnu.org @ 2023-07-07 17:16 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110590 --- Comment #1 from Jan Hubicka <hubicka at gcc dot gnu.org> --- Forgot about gcc.dg/tree-prof/update-unroll-2.c ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/110590] Failing CFG consistency testcases 2023-07-07 17:12 [Bug middle-end/110590] New: Failing CFG consistency testcases hubicka at gcc dot gnu.org 2023-07-07 17:16 ` [Bug middle-end/110590] " hubicka at gcc dot gnu.org @ 2023-07-07 21:00 ` hubicka at gcc dot gnu.org 2023-07-08 15:38 ` cvs-commit at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: hubicka at gcc dot gnu.org @ 2023-07-07 21:00 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110590 --- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> --- ... and testsuite/gcc.dg/unroll-7.c ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug middle-end/110590] Failing CFG consistency testcases 2023-07-07 17:12 [Bug middle-end/110590] New: Failing CFG consistency testcases hubicka at gcc dot gnu.org 2023-07-07 17:16 ` [Bug middle-end/110590] " hubicka at gcc dot gnu.org 2023-07-07 21:00 ` hubicka at gcc dot gnu.org @ 2023-07-08 15:38 ` cvs-commit at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-07-08 15:38 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110590 --- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jan Hubicka <hubicka@gcc.gnu.org>: https://gcc.gnu.org/g:15bbf1826a01f5beb2d7c0f74d6270bbc94ece91 commit r14-2396-g15bbf1826a01f5beb2d7c0f74d6270bbc94ece91 Author: Jan Hubicka <jh@suse.cz> Date: Sat Jul 8 17:38:09 2023 +0200 Fix tree-ssa/update-cunroll.c In this testcase the profile is misupdated before loop has two exits. The first exit is one eliminated by complete unrolling while second exit remains. We remove first exit but forget about fact that the source BB of other exit will then have higher frequency making other exit more likely. This patch fixes that in duplicate_loop_body_to_header_edge. While looking into resulting profiles I also noticed that in some cases scale_loop_profile may drop probabilities to 0 incorrectly either when trying to update exit from nested loop (which has similar problem) or when the profile was inconsistent as described in coment bellow. gcc/ChangeLog: PR middle-end/110590 * cfgloopmanip.cc (scale_loop_profile): Avoid scaling exits within inner loops and be more careful about inconsistent profiles. (duplicate_loop_body_to_header_edge): Fix profile update when eliminated exit is followed by other exit. gcc/testsuite/ChangeLog: PR middle-end/110590 * gcc.dg/tree-prof/update-cunroll-2.c: Remove xfail. * gcc.dg/tree-ssa/update-cunroll.c: Likewise. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-07-08 15:38 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-07-07 17:12 [Bug middle-end/110590] New: Failing CFG consistency testcases hubicka at gcc dot gnu.org 2023-07-07 17:16 ` [Bug middle-end/110590] " hubicka at gcc dot gnu.org 2023-07-07 21:00 ` hubicka at gcc dot gnu.org 2023-07-08 15:38 ` cvs-commit at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).