This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Scheduling fix (fixes gcc.c-torture/execute/980506-1.c on ppc)
- To: Geoff Keating <geoffk at ozemail dot com dot au>
- Subject: Re: Scheduling fix (fixes gcc.c-torture/execute/980506-1.c on ppc)
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Thu, 27 Aug 1998 02:04:32 -0600
- cc: Franz dot Sirl-kernel at lauterbach dot com, egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199808260521.PAA14575@geoffk.wattle.id.au>you write:
> > Date: Tue, 25 Aug 1998 16:52:57 +0200
> > From: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
>
> > is this patch needed in addition to this one:
> >
> > Tue Aug 18 10:32:11 1998 Jeffrey A Law (law@cygnus.com)
> >
> > * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
> > pending memory flush list.
> >
> > This patch alone fixed 980506-1.c for me and others. Doesn't it fix all
> > possible cases?
>
> That patch is a "optimisation doesn't work, let's turn it off" class
> of patch, which I hope is only for the 1.1 release. My patch fixes
> the underlying problem.
No it is not such a patch. The scheduler is not supposed to be moving
memory references like that.
> Notice that since loops usually end with JUMP_INSNs, the patch
> effectively disables all interblock scheduling; and I always thought
> the whole point of the Haifa scheduler was that it could do
> speculative loads around loops.
No, it disables interblock scheduling of memory references, which it
should not have been doing to start with.
jeff