This is the mail archive of the
mailing list for the GCC project.
Re: A sched.c patch
- To: hjl at lucon dot org (H.J. Lu)
- Subject: Re: A sched.c patch
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sun, 12 Jul 1998 22:27:27 -0600
- cc: egcs-patches at cygnus dot com
- Reply-To: law at cygnus dot com
In message <m0yvXmm-000266C@ocean.lucon.org>you write:
> This patch fixes
> BTW, those bugs may be only visible on x86 with -march=i586 -mcpu=i586.
> The problem is the interaction between true_dependence and rtx_varies_p
> called from sched_analyze_2. sched_analyze_2 is called for a block. But
> rtx_varies_p doesn't realy work very well on a block. true_dependence
> will miss dependency within a block when rtx_varies_p is used.
> This patch intrudoce a new function, sched_rtx_varies_p, which works on
> block. It uses reg_last_sets to check if a register varies within a
I think this is the wrong approach.
Presumably "block" above refers to memory references of BLKmode or
into structures? If so, then we should first make sure the MEM_IN_STRUCT_P
is set to a reasonable value.
Given a variety of tidbits from this thread and a separate thread with
Kenner, Jim, Mark & myself, I suspect the problem is an incorrect change
to expr.c brought over in the last merge. It sets MEM_IN_STRUCT_P
As a quick test, I reverted Kenner's patch and everything works fine
I'm still investigating.