This is the mail archive of the gcc@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]

Re: [GCC 3.0] Bad regression, binary size


On Sun, Jul 08, 2001 at 02:28:04PM -0700, Linus Torvalds wrote:
> You can fix it in three easy-ish steps (famous last words):

Oh, no.  You can't get away that easily.

>  - make a "align frame pointer prologue" (which is not that different
>    from the existing one - one extra "and")

Not quite -- you have to play games to get a proper pointer 
to the argument list so that you can do your step 3.

>  - load all alignment-wanting arguments into pseudos in the prologue
>    after aliging the frame pointer (and let the normal spill code spill
>    them if required - now they are aligned or are cached in registers). 

Which might work ok for small numbers of arguments, but
is going to be excruciating when someone passes in 30
arguments, or worse, passes a structure by value.

> This would not have any negative impact on most code,
> and I don't see it as being noticeably slower than the
> "always align" even for the FP-heavy code.

I think you'd be surprised how ugly forced stack alignment
is in practice.


r~


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