This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Results for 3.4-bi 20021213 (experimental) testsuite on
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: jason at redhat dot com (Jason Merrill)
- Cc: zack at codesourcery dot com, nathan at codesourcery dot com, gcc-testresults at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Tue, 17 Dec 2002 17:27:53 -0500 (EST)
- Subject: Re: Results for 3.4-bi 20021213 (experimental) testsuite on
> > There are still 14 additional v3 fails. I looked at one briefly by
> > comparing the assembler output with the 3.3 compiler versus the 3.4
> > compiler. It looks like we are failing to pass the struct value register
> > in some situations (there was one call where 3.3 passed it and 3.4 didn't
> > in the operations.cc test).
In the v3 testsuite, this appears to be the only significant diff
in the operations.cc test:
--- operations-3.3.s 2002-12-16 16:18:47.000000000 -0800
+++ operations.s 2002-12-16 15:52:40.000000000 -0800
[...]
@@ -112,8 +112,6 @@
nop
.LEHE2:
ldo 40(%r3),%r19
- ldo 32(%r3),%r20
- copy %r20,%r28
copy %r19,%r26
ldil LR'.LC0,%r19
ldo RR'.LC0(%r19),%r25
This diff occurs in _Z6test01v setting up a call to
_ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_PKS3_.
With 3.3 we have in the initial rtl:
(insn 51 50 52 (nil) (set (reg:SI 103)
(plus:SI (reg/f:SI 90 virtual-stack-vars)
(const_int 24 [0x18]))) -1 (nil)
(nil))
(insn 52 51 53 (nil) (set (reg:SI 28 %r28)
(reg:SI 103)) -1 (nil)
(nil))
With 3.4,
(insn 52 51 53 (nil) (set (reg/f:SI 28 %r28)
(reg/f:SI 28 %r28)) -1 (nil)
(nil))
It looks like the code is attempting to reuse the address previously
loaded into %r28. However, there are two intervening function calls
and the value is clobbered.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)