target/6882: [SPARC] Useless stack adjustment code
Falk Hueffner
falk.hueffner@student.uni-tuebingen.de
Mon Mar 31 09:47:00 GMT 2003
The following reply was made to PR target/6882; it has been noted by GNATS.
From: Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
To: Eric Botcazou <ebotcazou@libertysurf.fr>
Cc: Hans-Peter Nilsson <hp@bitrange.com>, <dann@godzilla.ics.uci.edu>,
<gcc-bugs@gcc.gnu.org>, <nobody@gcc.gnu.org>, <gcc-gnats@gcc.gnu.org>
Subject: Re: target/6882: [SPARC] Useless stack adjustment code
Date: 31 Mar 2003 10:50:21 +0200
Eric Botcazou <ebotcazou@libertysurf.fr> writes:
> > No, it seems a valid optimization request to not emit the
> > stack-adjustment code. Could you find a *specific* reason for
> > the stack-adjustment code? (Please state that in the PR.)
>
> No, I don't see a "specific" reason. But:
> - functions from the same translation unit that call it (and that appear
> after it in normal mode, but the restriction is lifted with
> -funit-at-a-time) don't actually emit the call,
> - would the benefit be worth it in real life, given that the costly operation
> is to call the function itself (for nothing)? I think the real optimization
> is not to emit the call at all.
Don't know about SPARC, but on Alpha, this also occurs with non-nop
functions:
struct s2 { unsigned long a, b; };
unsigned long f8(struct s2 x) { return x.a + x.b; }
0000000000000000 <f8>:
0: 00 04 11 42 addq a0,a1,v0
4: f0 ff de 23 lda sp,-16(sp)
8: 10 00 de 23 lda sp,16(sp)
c: 01 80 fa 6b ret
While the optimization certainly isn't that important, it also seems
to be not too difficult, and the code size saving is also nice.
--
Falk
More information about the Gcc-prs
mailing list