[llvm-dev] variadic functions on X86_64 should (conditionally) save XMM regs even if -no-implicit-float

Salim Nasser via llvm-dev llvm-dev at lists.llvm.org
Mon Jun 10 13:19:01 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").

More information about the llvm-dev mailing list