[llvm-commits] [cfe-dev] [PATCH] Windows improvements

NAKAMURA Takumi geek4civic at gmail.com
Mon Feb 28 04:14:45 PST 2011


Good evening, Erik,

On Mon, Feb 28, 2011 at 7:44 PM, Erik Olofsson <Erik.Olofsson at hansoft.se> wrote:
> From HandleLLVMOptions.cmake
>  if(CYGWIN)
>    set(LLVM_ON_WIN32 0)
>    set(LLVM_ON_UNIX 1)
>  else(CYGWIN)
>    set(LLVM_ON_WIN32 1)
>    set(LLVM_ON_UNIX 0)
> endif(CYGWIN)
>
> This can filter out Cygwin with (defined(LLVM_ON_WIN32) && !defined(LLVM_ON_UNIX)), but I guess mingw would have to be filtered out in another way.

I assume Cygwin could be treated as unix-variant in common context.
(Cygwin gcc does not define _WIN32 by default)

In contrast, mingw should be treated as "Win32 development environment".
Mingw provides MSVCRT.DLL-compatible standard headers and w32api.

Of course, I know we have to distinguish msc and mingw in some cases.

> If there is no existing way I could add:
>  if(MSVC)
>    set(LLVM_ON_WIN32MSVC 1)
>  endif(MSVC)

In C/C++ sources, we may detect MSVC with _MSC_VER, I suppose.
IMO I don't need to introduce LLVM_ON_WIN32MSVC.

Rather, I think LLVM_ON_**** could be deprecated. It should be enough
with _WIN32.

>> Please split clang's patch by functionality.
>
> Ok, so split into three patches?
> * refactor llvm::outs()/errs()
> * cc1 invocation without a new process
> * output diagnostics as debug string

Sure. And "cosmetic changes (eg. reindentation, 80-col wrap, untabify
&c)" might be split out, please.

>> "/MP" works better for me functionally, though, it would be dubious for
>> style.
>> Oscar, do you have any opinions?
>>
>> FYI, I am using /m with msbuild.exe.
>
> 'msbuild /m' and 'cl /MP' works well together giving the most amount of parallelism with both projects and individual translation units being compiled in parallel.

Good to hear. :D

...Takumi




More information about the llvm-commits mailing list