[LLVMdev] 64bit MRV problem: { float, float, float} -> { double, float }
Duncan Sands
baldrick at free.fr
Mon Jan 25 03:13:24 PST 2010
Hi Ralf,
> The problem is, that I require the function to preserve the number and
> type of its arguments, but some optimization on 64bit breaks up some of
> the struct parameters (I suppose only those that are just loaded and/or
> stored somewhere) and inserts a double and a float.
this is almost certainly *not* an optimization - the llvm-g++ front-end
generates this because the x86-64 ABI requires it. There's not much that
can be done about it if you want your functions to be callable from code
compiled with a different compiler, such as gcc.
Ciao,
Duncan.
More information about the llvm-dev
mailing list