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