<div dir="auto">Thanks!</div><div class="gmail_extra"><br><div class="gmail_quote">On 1 Jun 2017 12:32, "Hahnfeld, Jonas" <<a href="mailto:Hahnfeld@itc.rwth-aachen.de">Hahnfeld@itc.rwth-aachen.de</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="DE" link="blue" vlink="purple"><div class="m_-1614981756089569250WordSection1"><p class="MsoNormal" style="text-align:justify"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">If you only need debug _<i>information</i><b>_</b>, you may try RelWithDebInfo.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">AFAIK Clang calls into the LLVM libraries. So if you compile those in debug mode, Clang will still be slow even if compiled as Release.<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Cheers,<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">Jonas<u></u><u></u></span></p><p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Nikodemus Siivola [mailto:<a href="mailto:nikodemus@random-state.net" target="_blank">nikodemus@random-<wbr>state.net</a>] <br><b>Sent:</b> Thursday, June 1, 2017 11:28 AM<br><b>To:</b> Hahnfeld, Jonas <<a href="mailto:Hahnfeld@itc.rwth-aachen.de" target="_blank">Hahnfeld@itc.rwth-aachen.de</a>><br><b>Cc:</b> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br><b>Subject:</b> Re: [cfe-dev] clang-cl.exe (32bit) dog slow, capping at ~16.5% CPU<u></u><u></u></span></p><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">Is there a way to build LLVM libraries with debug info and clang with release flags?<br><br>(I'm working on a frontend toy and figuring out what I've done to to crash LLVM is much easier with a debug build...)<u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Thu, Jun 1, 2017 at 10:47 AM, Hahnfeld, Jonas <<a href="mailto:Hahnfeld@itc.rwth-aachen.de" target="_blank">Hahnfeld@itc.rwth-aachen.de</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm"><div><div><p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d">> </span><span lang="EN-US">cmake -G "MinGW Makefiles" \</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">  -DCMAKE_INSTALL_PREFIX=C:\LLVM \</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">  -DCMAKE_BUILD_TYPE=Debug \</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">  -DLLVM_ENABLE_ASSERTIONS=On \</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">  -DLLVM_TARGETS_TO_BUILD=X86 \</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">  </span>-DLLVM_ENABLE_CXX1Y=On \<u></u><u></u></p><p class="MsoNormal">  ../<u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1f497d"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">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.</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">Regards,</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US">Jonas</span><u></u><u></u></p><p class="MsoNormal"><span lang="EN-US"> </span><u></u><u></u></p><p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> cfe-dev [mailto:<a href="mailto:cfe-dev-bounces@lists.llvm.org" target="_blank">cfe-dev-bounces@lists.<wbr>llvm.org</a>] <b>On Behalf Of </b>Nikodemus Siivola via cfe-dev<br><b>Sent:</b> Thursday, June 1, 2017 9:43 AM<br><b>To:</b> <a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br><b>Subject:</b> [cfe-dev] clang-cl.exe (32bit) dog slow, capping at ~16.5% CPU</span><u></u><u></u></p><div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">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.<u></u><u></u></p><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Memory and disk use appear trivial as well, and the computer was otherwise mostly idle at the time. <u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Compiling a trivial hello-world takes 11 seconds:<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">$ clang --version</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">clang version 4.0.1</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">Target: i686-pc-windows-msvc</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">Thread model: posix</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">InstalledDir: C:\LLVM\bin</span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">$ cat foo.cpp</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">#include <iostream></span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">int main()</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">{</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    std::cout << "Yo" << std::endl;</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">    return 0;</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">}</span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">$ time clang-cl foo.cpp</span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">real    0m11.886s</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">user    0m0.015s</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Courier New"">sys     0m0.015s</span><u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">Compiling the same program under the Linux subsystem and clang-3.5 takes 0.16seconds. The Visual Studio commandline compiler is likewise almost instant.<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal">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:<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><div><p class="MsoNormal">cmake -G "MinGW Makefiles" \<u></u><u></u></p></div><div><p class="MsoNormal">  -DCMAKE_INSTALL_PREFIX=C:\LLVM \<u></u><u></u></p></div><div><p class="MsoNormal">  -DCMAKE_BUILD_TYPE=Debug \<u></u><u></u></p></div><div><p class="MsoNormal">  -DLLVM_ENABLE_ASSERTIONS=On \<u></u><u></u></p></div><div><p class="MsoNormal">  -DLLVM_TARGETS_TO_BUILD=X86 \<u></u><u></u></p></div><div><p class="MsoNormal">  -DLLVM_ENABLE_CXX1Y=On \<u></u><u></u></p></div><div><p class="MsoNormal">  ../<u></u><u></u></p></div></div><div><p class="MsoNormal">cmake --build .<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p><div><p class="MsoNormal">Did I pick spectacularly stupid build options or something?<u></u><u></u></p></div><p class="MsoNormal" style="margin-bottom:12.0pt"><br>Any suggestions for figuring out what is going on? (Windows is not my regular platform so I'm a bit out of depth here.)<u></u><u></u></p><div><p class="MsoNormal">Cheers,<u></u><u></u></p></div></div><div><p class="MsoNormal"> <u></u><u></u></p></div><div><p class="MsoNormal"> -- nikodemus<u></u><u></u></p></div><div><p class="MsoNormal"> <u></u><u></u></p></div></div></div></div></div></div></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></blockquote></div></div>