[cfe-dev] clang-cl.exe (32bit) dog slow, capping at ~16.5% CPU

NAKAMURA Takumi via cfe-dev cfe-dev at lists.llvm.org
Thu Jun 8 00:53:36 PDT 2017


Assuming you are using Visual Studio IDE, choose build configuration in
toolbar and build again. Debug by default.
CMAKE_BUILD_TYPE should not be set for Visual Studio Generator.

On Thu, Jun 8, 2017 at 4:50 PM Nikodemus Siivola <nikodemus at random-state.net>
wrote:

> Aha! Release/bin has just llvm-lit.py in it, whereas Debug/bin has
> everything. So not a release build after all.
>
> $ grep CMAKE_BUILD_TYPE CMakeCache.txt
> CMAKE_BUILD_TYPE:UNINITIALIZED=Release
>
> ...which seems odd both for claiming to be uninitialized and not matching
> the binaries.
>
> So I should delete that line and rebuild with
>
> cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo
>
> ?
>
> Cheers,
>
>  -- nikodemus
>
>
> On Thu, Jun 8, 2017 at 8:36 AM, NAKAMURA Takumi <geek4civic at gmail.com>
> wrote:
>
>> I wonder you specified -DCMAKE_BUILD_TYPE=Release to Visual Studio
>> Generator.
>>
>> Make sure;
>> - Delete CMAKE_BUILD_TYPE
>> - clang-cl.exe is generated as Release\bin\clang-cl.exe in your build
>> tree.
>>   Visual Studio (and msbuild.exe) has multiple configurations.
>>
>>
>> On Thu, Jun 8, 2017 at 1:57 AM Nikodemus Siivola via cfe-dev <
>> cfe-dev at lists.llvm.org> wrote:
>>
>>> One core out of eight sounds plausible indeed! Never thought of that,
>>> more used to *nix style usage numbers where 1.0 = one core. :)
>>>
>>> Did a release build:
>>>
>>>     cmake -G "Visual Studio 14 2015" \
>>>       -DCMAKE_INSTALL_PREFIX=C:\LLVM \
>>>       -DCMAKE_BUILD_TYPE=Release \
>>>       -DLLVM_TARGETS_TO_BUILD=X86 \
>>>       -DLLVM_ENABLE_CXX1Y=On \
>>>       ../
>>>
>>> That clang still takes >10s to build a hello-world.
>>>
>>> Any suggestions?
>>>
>>> Cheers,
>>>
>>>  -- nikodemus
>>>
>>>
>>> On Thu, Jun 1, 2017 at 6:11 PM, David Blaikie <dblaikie at gmail.com>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Thu, Jun 1, 2017 at 12:48 AM Hahnfeld, Jonas via cfe-dev <
>>>> cfe-dev at lists.llvm.org> wrote:
>>>>
>>>>> > cmake -G "MinGW Makefiles" \
>>>>>
>>>>>   -DCMAKE_INSTALL_PREFIX=C:\LLVM \
>>>>>
>>>>>   -DCMAKE_BUILD_TYPE=Debug \
>>>>>
>>>>>   -DLLVM_ENABLE_ASSERTIONS=On \
>>>>>
>>>>>   -DLLVM_TARGETS_TO_BUILD=X86 \
>>>>>
>>>>>   -DLLVM_ENABLE_CXX1Y=On \
>>>>>
>>>>>   ../
>>>>>
>>>>>
>>>>>
>>>>> CMAKE_BUILD_TYPE=Debug will result in a non-optimized compiler.
>>>>> Although I don’t have numbers at hand, you might want to set
>>>>> CMAKE_BUILD_TYPE=Release.
>>>>>
>>>>
>>>> Also  -DLLVM_ENABLE_ASSERTIONS=On
>>>>
>>>> The build system at some point had a warning informing users that this
>>>> might produce an order of magnitude (or more) slower compiler.
>>>>
>>>> I'd suggest you keep an optimized and unoptimized compiler around.
>>>> Though even then, Hello World doesn't take me 10 seconds to compile... so
>>>> maybe there's other things going on. Sounds like you'd want one set of LLVM
>>>> stuff with all the debugging knobs turned on (exactly as you've built) &
>>>> use that with your frontend, and another, release build, for running clang,
>>>> etc for practical porpoises.
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>> Regards,
>>>>>
>>>>> Jonas
>>>>>
>>>>>
>>>>>
>>>>> *From:* cfe-dev [mailto:cfe-dev-bounces at lists.llvm.org] *On Behalf Of
>>>>> *Nikodemus Siivola via cfe-dev
>>>>> *Sent:* Thursday, June 1, 2017 9:43 AM
>>>>> *To:* cfe-dev at lists.llvm.org
>>>>> *Subject:* [cfe-dev] clang-cl.exe (32bit) dog slow, capping at ~16.5%
>>>>> CPU
>>>>>
>>>>>
>>>>>
>>>>> I was wondering why compiles were so slow and noticed that
>>>>> clang-cl.exe is never consuming more than ~16.5% CPU on my laptop. This is
>>>>> an i7-7700HQ, 32GB memory, running Windows 10 Pro.
>>>>>
>>>>>
>>>>>
>>>>> Memory and disk use appear trivial as well, and the computer was
>>>>> otherwise mostly idle at the time.
>>>>>
>>>>>
>>>>>
>>>>> Compiling a trivial hello-world takes 11 seconds:
>>>>>
>>>>>
>>>>>
>>>>> $ clang --version
>>>>>
>>>>> clang version 4.0.1
>>>>>
>>>>> Target: i686-pc-windows-msvc
>>>>>
>>>>> Thread model: posix
>>>>>
>>>>> InstalledDir: C:\LLVM\bin
>>>>>
>>>>>
>>>>>
>>>>> $ cat foo.cpp
>>>>>
>>>>> #include <iostream>
>>>>>
>>>>>
>>>>>
>>>>> int main()
>>>>>
>>>>> {
>>>>>
>>>>>     std::cout << "Yo" << std::endl;
>>>>>
>>>>>     return 0;
>>>>>
>>>>> }
>>>>>
>>>>>
>>>>>
>>>>> $ time clang-cl foo.cpp
>>>>>
>>>>>
>>>>>
>>>>> real    0m11.886s
>>>>>
>>>>> user    0m0.015s
>>>>>
>>>>> sys     0m0.015s
>>>>>
>>>>>
>>>>>
>>>>> Compiling the same program under the Linux subsystem and clang-3.5
>>>>> takes 0.16seconds. The Visual Studio commandline compiler is likewise
>>>>> almost instant.
>>>>>
>>>>>
>>>>>
>>>>> This is release_40 from one of the git mirrors, build built as part of
>>>>> the LLVM tree using Visual Studio 2015 command prompt, with (I think, not
>>>>> 100% sure, don't know cmake well enough to figure out after the fact) the
>>>>> following cmake invovations:
>>>>>
>>>>>
>>>>>
>>>>> cmake -G "MinGW Makefiles" \
>>>>>
>>>>>   -DCMAKE_INSTALL_PREFIX=C:\LLVM \
>>>>>
>>>>>   -DCMAKE_BUILD_TYPE=Debug \
>>>>>
>>>>>   -DLLVM_ENABLE_ASSERTIONS=On \
>>>>>
>>>>>   -DLLVM_TARGETS_TO_BUILD=X86 \
>>>>>
>>>>>   -DLLVM_ENABLE_CXX1Y=On \
>>>>>
>>>>>   ../
>>>>>
>>>>> cmake --build .
>>>>>
>>>>>
>>>>>
>>>>> Did I pick spectacularly stupid build options or something?
>>>>>
>>>>>
>>>>> Any suggestions for figuring out what is going on? (Windows is not my
>>>>> regular platform so I'm a bit out of depth here.)
>>>>>
>>>>> Cheers,
>>>>>
>>>>>
>>>>>
>>>>>  -- nikodemus
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> cfe-dev mailing list
>>>>> cfe-dev at lists.llvm.org
>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>>>
>>>>
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170608/e134801b/attachment.html>


More information about the cfe-dev mailing list