[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...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190610/cdea2396/attachment.html>

More information about the llvm-dev mailing list