[cfe-commits] Alignment of return from __builtin_alloca
Chad Rosier
mcrosier at apple.com
Thu Jun 7 17:46:26 PDT 2012
On Jun 7, 2012, at 5:22 PM, Jakob Stoklund Olesen wrote:
>
> On Jun 7, 2012, at 4:33 PM, Chandler Carruth <chandlerc at google.com> wrote:
>
>> However, it does seem like this should be no more than an 'and' instruction in the worst case (we don't have known alignment of the stack).
>
> Realigning the stack requires the function to have a frame pointer, so frame pointer elimination is no longer possible. If you have dynamically sized allocas, a reserved base pointer register is also necessary.
>
> Reserving 2 out of 7 registers on x86 can have quite the performance impact.
>
> Base pointer support is quite new, BTW.
Very new: http://llvm.org/viewvc/llvm-project?rev=158087&view=rev
> Previously, we simply refused to compile functions that required stack realignment and dynamic allocas.
Actually, clang was silently miscompiling the code. :/
Chad
>
> /jakob
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120607/a7f5ab42/attachment.html>
More information about the cfe-commits
mailing list