This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: target/6882: [SPARC] Useless stack adjustment code


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]