This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed] sched-dep.c patch for unconditional dependencies
- From: Steven Bosscher <stevenb at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: James E Wilson <wilson at specifix dot com>
- Date: Sat, 15 Oct 2005 19:02:02 +0200
- Subject: Re: [committed] sched-dep.c patch for unconditional dependencies
- References: <1129395109.18094.16.camel@aretha.corp.specifix.com>
On Saturday 15 October 2005 18:51, James E Wilson wrote:
> I tested this with an IA-64 linux bootstrap and make check for all
> default languages. There were no regressions.
>
> I have checked in the patch.
Sorry for causing this breakage.
> My work here is not quite finished though. While looking at this, I
> noticed another flaw. The code is trying to use
> last_pending_memory_flush both as a scheduling barrier, and as a list of
> pending jump insns. Unfortunately, this can not work, because
> scheduling barriers require unconditional dependencies, and the pending
> jump insns don't want unconditional dependencies. The list of
> jump_insns needs to be separate from the last_pending_memory_flush. I
> left this broken for now. I plan to create a new PR for it. I think I
> can created a testcase by using --param. A failing case would look
> something like
> jump_insn 1
> ....
> jump_insn n-1
> store to foo
> jump_insn n (calls flush_pending_lists)
> load from foo
> and now we have no dependency to prevent the load from being moved
> before the store. For now, I suspect this bug won't trigger because we
> won't get regions and/or extended basic blocks big enough to trigger it.
Actually, could PR23857 be an example of this problem happening
in real code?
Gr.
Steven