[LLVMdev] Stack alignment on X86 AVX seems incorrect

Cameron McInally cameron.mcinally at nyu.edu
Fri Mar 2 08:17:13 PST 2012


>
> At least for 32bit x86 reserving another register as alternative frame
> pointer is very heavy. The above would allow normal spill logic to
> decide when to keep a reference in register and when not. It also reuses
> existing functionality as much as possible.
>

Hi Joerg,

Yes, this was a problem in my implementation also. Empirically, for the
chips I work on, reserving the extra frame register was shown to be a win.
But, of course, I am sure this win is not universal.

I did receive permission to share my work with the community. Although,
without discovering a creative solution to the extra frame register
problem, I doubt my patch would be wanted. If anyone is motivated to work
out this issue, I would be happy to help.

My current thinking is that an emergency spill slot could be set aside to
hold the original, ABI conforming, frame pointer. Not an ideal solution,
but in my situation where I must cover any code a user throws at me,
breaking the ABI and playing with the stack is preferred.

Thanks,
Cameron
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120302/27160242/attachment.html>


More information about the llvm-dev mailing list