On Tue, Nov 24, 2009 at 03:32:20PM +0000, Andrew Haley wrote: > Jakub Jelinek wrote: > > On Tue, Nov 24, 2009 at 03:55:49PM +0100, Thomas Gleixner wrote: > >>> you should compile your code with -maccumulate-outgoing-args, and there's > >>> no need to use -mtune=generic. Is that right? > >> Seems to work. What other side effects has that ? > > > > Faster code, significant increase in code size though. > > Does it affect code size when we don't have to realign the stack pointer?
Yes, a lot. The difference is that -maccumulate-outgoing-args allocates space for arguments of the callee with most arguments in the prologue, using subtraction from sp, then to pass arguments uses movl XXX, 4(%esp) etc. and the stack pointer doesn't usually change within the function (except for alloca/VLAs). With -mno-accumulate-outgoing-args args are pushed using push instructions and stack pointer is constantly changing. Jakub