This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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~