This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: -mpower4 sched2 bug miscompiles linux kernel
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Alan Modra <amodra at bigpond dot net dot au>
- Cc: Geoff Keating <geoffk at geoffk dot org>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 10 Sep 2002 21:52:38 -0400
- Subject: Re: -mpower4 sched2 bug miscompiles linux kernel
>>>>> Alan Modra writes:
Alan> Works OK, but tends to use more registers. eg. the testcase code I
Alan> posted compiled with "-O2 -mstring" gives:
Well, copy means copy. :-)
To some extent this degradation is artificial because the PowerPC
string instructions treat the GPRs as 32-bit words, not 64-bit doublewords
(there are no ldsi and stdsi instructions). And store_on_arg demands that
expand_block_move handle the size of the parameter area, whether that is
efficient or not, which means 64 bytes in 64-bit mode.
In 32-bit mode, one will never call movstrsi more than once and
never allocate more registers than before. 64-bit mode normally does not
enable string instructions. I don't think this is a real problem. I am
more confident that this version always produces correct results and uses
the GCC internals correctly so that the block move code no longer is lying
to the backend.
I would go ahead and check this version in.
Thanks, David