[llvm-dev] variadic functions on X86_64 should (conditionally) save XMM regs even if -no-implicit-float
Nasser, Salim via llvm-dev
llvm-dev at lists.llvm.org
Mon Jun 10 13:15:29 PDT 2019
On Tue, Jun 4, 2019 at 4:00 AM Anton Korobeynikov via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
> The problem is that now, when optimization is disabled, the compiler will *unconditionally* access XMM registers in the prolog of varargs functions. This is *not* the usual code to spill floating point varargs arguments (which is correctly guarded by testing %al). Instead the compiler:
I believe this is a bug that needs to be handled separately..
On 6/5/19 4:29 PM, Reid Kleckner wrote:
I think your reasoning makes sense, and we should make the XMM saving in llvm.va_start conditional.
Thanks both of you for the feedback. I've filed bug 42219 ("[X86_64] Variadic functions unconditionally spill %XMM registers").
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev