[cfe-dev] Clang on Windows targteing gcc compiles very slowly

Edward Diener eldlistmailingz at tropicsoft.com
Sat May 30 20:36:13 PDT 2015


On 5/30/2015 8:02 PM, Jonathan Roelofs wrote:
>
>
> On 5/30/15 9:20 AM, Edward Diener wrote:
>> On 5/30/2015 10:30 AM, Reid Kleckner wrote:
>>> You said you configured in release mode, but assertions might still be
>>> on. That accounts for a 2x slowdown.
>>
>> LLVM_ENABLE_ASSERTIONS is off.
>
> Can you run it in a profiler and tell us what's slow about it for your
> benchmark? We don't have a lot of information to work with here. A flame
> graph would probably be the most useful.

I never met a code profiler I liked ( Rogers Will, aka myself ).

Care to recommend one with decent instructions which I can actually 
use/understand to profile the clang++.exe when I try to compile a test 
of a particular Boost library ?

Is it possible that the general slowness of clang on Windows targeting 
gcc comes from some CMake build parameter ? I notice a ton of them for 
llvm/clang when I use the CMake GUI to configure and generate my clang 
build. It seems that a number of them are turned on by default. Perhaps 
many are not necessary. I also find it very difficult to find any 
documentation about the llvm/clang build parameters. Are there page(s) 
that document what they are and why they should be used ? For instance I 
see that CLANG_ENABLE_ARCMT and CLANG_ENABLE_STATIC_ANALYZER are on by 
default. Could either of these be slowing down the clang compile 
considerably ? Likewise for llvm I see that LLVM_ENABLE_BACKTRACES, 
LLVM_ENABLE_CRASH_OVERRIDES, LLVM_ENABLE_PEDANTIC, LLVM_ENABLE_PIC, 
LLVM_ENABLE_TERMINFO, LLVM_ENABLE_TIMESTAMPS, LLVM_ENABLE_WARNINGS, and 
LLVM_ENABLE_ZLIB arw all on by default. Can either of these be slowing 
down clang ?

>
>
> Jon
>
>>
>>> Otherwise I'd say that we haven't
>>> profiled and optimized clang on windows very much.
>>>
>>> Sent from phone
>>>
>>> On May 29, 2015 4:51 PM, "Edward Diener"
>>> <eldlistmailingz at tropicsoft.com
>>> <mailto:eldlistmailingz at tropicsoft.com>> wrote:
>>>
>>>     I test Boost libraries mostly on Windows using various version of
>>>     gcc 4.3 and up, VC++ 8.0 and up, and the latest version of clang
>>>     which I build from source using mingw/gcc-4.8.1 in release mode.
>>>
>>>     While clang is a great compiler when it comes to testing code,
>>>     getting intelligent error message, and implementing the latest C++
>>>     standard, it is noticably slower ( 2x or 3x at minimum ) than the
>>>     other compilers I use.
>>>
>>>     The clang command line parameters usually being used are usually
>>>     along the lines of:
>>>
>>>     -c -x c++ -O0 -g -fno-inline -Wall -g -march=i686 -m32
>>>
>>>     with the addition of 'std=c++11' occasionally depending on the test.
>>>
>>>     Does anybody have any idea why clang is so much slower than any of
>>>     the other compilers I use ? It does not seem to matter whether it is
>>>     in C++03 mode or C++11 mode, it is noticeably slower than the other
>>>     compilers.
>>
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>





More information about the cfe-dev mailing list