[LLVMdev] [cfe-dev] Handling SRet on Windows x86

NAKAMURA Takumi geek4civic at gmail.com
Fri Mar 29 12:17:15 PDT 2013


2013/3/30 Timur Iskhodzhanov <timurrrr at google.com>:
> 2013/3/28 Anton Korobeynikov <asl at math.spbu.ru>:
>>> How can having an MSVC compatible compiler be to the detriment of clang and
>>> llvm? No one is trying to break mingw here, merely add support for something
>> Just to make stuff clear: I just wanted proper naming which will be
>> non-confusing. Right now we have:
>>  - isTargetWindows() which really means "msvc-compabile"
>>  - isTargetWin32() which means "everything on windows", so Windows +
>> Mingw + Cygwin
> Minor correction: currently isTargetWin32 means 32-bits (not
> "everything"), Windows + Mingw, not Cygwin.
> So this is actually even more confusing...

I expect you not to use the term "Windows" in this context any more.

>>  - isTargetWin64() is is basically 64-bit version of isTargetWin32(),
>> but strictly speaking is slightly different
>>
>> This naming while being the historical artifact is extremely
>> confusing. For me it seems the best solution will be something like
>> this:
>>  - isTargetMingw() - with obvious meaning
>>  - isTargetMSVC() - with obvious meaning
>>  - isTargetWindows() which will include all the flavours (so only OS
>> will matter here)
>>  - isTargetWindows() can be combined with existing 32/64 bit checks
>> This way we'll end with something being non-ambiguos.
> I think this is a much better naming than we have now, I'll prepare a
> patch for that.

At first, I suggest to change s/isTargetWindows/isTargetMSVC/

> Should we change the ***-pc-win32 triple to ***-pc-msvc ?

I think it might not required urgently.

My suggestions;

*-win32-{cygwin|mingw32|msvcrtXX}, then, -win32- can be omitted.

*-win32(-llvm), we could implement it as our new target, with
compiler-rt and libcxx, (w/o ms static crt nor cygming's libgcc).
I expect *-win32 might be more neutral than cygming and msvc.
I think it'd be better if we could take ms (C/C++) abi here.

FYI, I suppose Kai, a maintainer in cygming-gcc, might intend to
change its abi more suitable to msvc, for example, C++'s thiscall and
name mangling.

...Takumi



More information about the llvm-dev mailing list