This is the mail archive of the
gcc-testresults@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: zack at codesourcery dot com (Zack Weinberg)
- Cc: nathan at codesourcery dot com, gcc-testresults at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, jason at redhat dot com
- Date: Mon, 16 Dec 2002 00:18:38 -0500 (EST)
- Subject: Re: Results for 3.4-bi 20021213 (experimental) testsuite on
> "John David Anglin" <dave@hiauly1.hia.nrc.ca> writes:
>
> > Not much difference. I started looking at the failure of
> > g++.jason/thunk1.C (random selection) as I suspected there might
> > have been some change to thunks. However, that doesn't seem to
> > be the problem. It seems that the struct value register (%r28) is not
> > being passed anymore, or the instruction that passes it was deleted.
> > I haven't looked at the rtl yet.
> >
> > Do you recall any changes that might have affected this?
>
> I don't *recall* any such changes, but this looks suspicious:
>
> date: 2002/12/14 08:55:32; author: jason; state: Exp; lines: +4 -1
> * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro.
> * calls.c (expand_call): Handle it.
> * tree-inline.c (struct inline_data): Remove target_exprs field.
> (optimize_inline_calls): Don't initialize it.
> (expand_call_inline): Don't modify it. Handle
> CALL_EXPR_HAS_RETURN_SLOT_ADDR.
> (declare_return_variable): Take return slot addr.
> * langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm
> to return_slot_addr.
> * langhooks-def.h, langhooks.c: Adjust.
> * explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for
> a decl with no DECL_INITIAL.
>
> * expr.c (expand_expr): Don't discard the target of a call which
> returns in memory.
>
> cp/
> * semantics.c (simplify_aggr_init_exprs_r): Also prepend the
> return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR.
> * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE,
> don't bother with an AGGR_INIT_EXPR.
> (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE,
> just generate a new decl normally. Take return slot parm.
> * cp-tree.h: Adjust prototype.
This patch would appear to be the origin of the new failures. Backing up
to just before the above results in test results on hppa-unknown-linux-gnu
essentially identical to the main:
<http://gcc.gnu.org/ml/gcc-testresults/2002-12/msg00620.html>.
As noted in another message in this thread in gcc-testresults, the struct
value address is being passed in the first argument register rather than in
the register specified with STRUCT_VALUE_REGNUM.
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)