This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: target/6882: [SPARC] Useless stack adjustment code
- From: Falk Hueffner <falk dot hueffner at student dot uni-tuebingen dot de>
- To: Eric Botcazou <ebotcazou at libertysurf dot fr>
- Cc: Hans-Peter Nilsson <hp at bitrange dot com>, <dann at godzilla dot ics dot uci dot edu>, <gcc-bugs at gcc dot gnu dot org>, <nobody at gcc dot gnu dot org>, <gcc-gnats at gcc dot gnu dot org>
- Date: 31 Mar 2003 10:50:21 +0200
- Subject: Re: target/6882: [SPARC] Useless stack adjustment code
- References: <Pine.BSF.4.44.0303302305090.79802-100000@dair.pair.com><200303310937.25383.ebotcazou@libertysurf.fr>
Eric Botcazou <ebotcazou at libertysurf dot 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