This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [committed] sched-dep.c patch for unconditional dependencies


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]