[LLVMdev] MinGW/MSVC++ uses different ABI for sret

Eli Friedman eli.friedman at gmail.com
Fri Sep 25 16:50:32 PDT 2009


On Fri, Sep 25, 2009 at 2:41 PM, Óscar Fuentes <ofv at wanadoo.es> wrote:
> I filed a bug yesterday ( http://llvm.org/bugs/show_bug.cgi?id=5046 )
> and Anton kindly explained that LLVM is doing the right thing as per the
> ABI (the GCC ABI, I'll add).
>
>  1. Is there a LLVM way of dealing with this without using separate code
>  for VC++ and GCC?

I'm not sure what you mean... LLVM can distinguish between MinGW and
MSVC targets.   If we want to, it shouldn't be too hard to make
X86TargetLowering::LowerFormalArguments and
X86TargetLowering::LowerCall account for the difference.

>  3. Is a bug that LLVM does not distinguish among GCC and VC++ sret
>  handling?

Probably... see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36834 .

-Eli




More information about the llvm-dev mailing list