This is the mail archive of the
mailing list for the GCC project.
Re: Fix PR 56077
- From: Jeff Law <law at redhat dot com>
- To: Andrey Belevantsev <abel at ispras dot ru>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, "Vladimir N. Makarov" <vmakarov at redhat dot com>, Alexander Monakov <amonakov at ispras dot ru>
- Date: Fri, 22 Feb 2013 06:56:03 -0700
- Subject: Re: Fix PR 56077
- References: <512772F5.firstname.lastname@example.org>
On 02/22/13 06:30, Andrey Belevantsev wrote:
Hello,Can you explain how avoiding pushing the pending lists in this situation
avoids coalescing the volatile stores?
As found by Jakub and explained in the PR audit trail by Alexander, this
patch fixes the selective scheduler merge glitch of 2008 that added the
unnecessary JUMP_P check to the flush_pending_lists call. I have
removed the check and expanded the binary negation for clarity.
The patch was tested on x86-64, ia64, and ppc64 to be safe. The patch
should be conservatively safe at this stage as it adds more flushes and
thus more dependencies to the scheduler. The original test is fixed,
but I don't know how to add the test checking assembly insns order to
OK for trunk?
2012-02-22 Alexander Monakov <email@example.com>
Andrey Belevantsev <firstname.lastname@example.org>
* sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
flush pending lists also on non-jumps.
Also, if we go forward with your patch, the comment related to this
conditional needs to be fixed -- it still says "Flush pending lists on
jumps, ...", but you've removed the jump check.