[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 01:05:01 PDT 2017


Which tool are you using? msbuild.exe, devenv.exe, or cmake.exe --build ?

With cmake.exe, "cmake --config Release" would be available. (I haven't
tried)

See also;
http://bb.pgr.jp/builders/msbuild-llvmclang-x64-msc19-DA/builds/2179/steps/build_llvm_tblgen/logs/stdio

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

> I've been building from the command line, the IDE is a foreign land to me,
> but I'll give it a try. :)
>
> Thanks!
>
> On 8 Jun 2017 10.53, "NAKAMURA Takumi" <geek4civic at gmail.com> wrote:
>
>> 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/a6c665e2/attachment.html>


More information about the cfe-dev mailing list