<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I don’t think Apple disable assertion on the release build. I remember having clang and llvm crash because of assertion failure regularly at some point in the past.<div class="">Nowadays, it is far more unusual to get a clang crash, so I can’t tell, but I doubt they change the configuration.<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Le 20 nov. 2018 à 16:32, Jack Howarth via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a>> a écrit :</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" style="orphans: 2; widows: 2; " class="">The obvious question is whether the <a href="http://llvm.org/" class="">llvm.org</a> builds are using -D<span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;font-variant-ligatures:normal;white-space:pre" class="">LLVM_ENABLE_ASSERTIONS:OFF </span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre" class="">-DCMAKE_BUILD_TYPE:STRING=</span><span style="color:rgb(36,41,46);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre" class="">Release </span><span style="orphans: 2; widows: 2;" class=""><font color="#24292e" face="SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace" class=""><span style="font-size:12px;white-space:pre" class="">-DLLVM_LINK_LLVM_DYLIB:BOOL=ON which would improve the load time of the compiler by combining all of the llvm libs into a single dylib and would eliminate the speed decrease from using the default use of </span><span style="font-size:12px;white-space:pre" class="">assertions in the built compiler</span><span style="font-size:12px;white-space:pre" class="">.</span></font></span></div><div style="orphans: 2; widows: 2; " class=""><span style="orphans: 2; widows: 2;" class=""><font color="#24292e" face="SFMono-Regular, Consolas, Liberation Mono, Menlo, Courier, monospace" class=""><span style="font-size:12px;white-space:pre" class="">       Jack</span></font></span></div></div></div></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Tue, Nov 20, 2018 at 6:56 AM Tobias Hieta via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">Hello LLVM/Clang developers,</div><div class=""><br class=""></div><div class="">We recently switched to use the same clang version on all our platforms. This included switching from apple-clang from xcode to a pre-built binary we downloaded from <a href="http://llvm.org/" target="_blank" class="">llvm.org</a>. We noticed that this actually came with a pretty big performance regression in compile times.</div><div class=""><br class=""></div><div class="">If we do the simplest test program like this:</div><div class=""><br class=""></div><div class="">#include <string><br class="">#include <iostream><br class="">int main()<br class="">{<br class="">    std::cout << "Hello world" << std::endl;<br class="">}</div><div class=""><br class=""></div><div class="">and compile that with Xcode Clang (Xcode 10.1 apple-clang clang-1000.11.45.5):</div><div class="">clang++ test.cpp -o test  0.31s user 0.06s system 97% cpu 0.380 total</div><div class=""><br class=""></div><div class="">with clang 7 binaries found on <a href="http://llvm.org/" target="_blank" class="">llvm.org</a> 7.0.0:</div><div class="">~/Downloads/clang+llvm-7.0.0-x86_64-apple-darwin/bin/clang++ -o test test.cpp  0.53s user 0.11s system 62% cpu 1.032 total</div><div class=""><br class=""></div><div class="">If we now run that on our whole project:</div><div class="">with xcode clang:</div><div class="">368.17s user 32.00s system 663% cpu 1:00.30 total</div><div class=""><br class=""></div><div class="">with clang 7:</div><div class="">423.31s user 31.65s system 662% cpu 1:08.69 total</div><div class=""><br class=""></div><div class="">That's a pretty hefty difference. Any ideas what can account for this discrepancy? Does apple-clang contain any special patches or build flags that differ a lot from the binaries on <a href="http://llvm.org/" target="_blank" class="">llvm.org</a>?</div><div class=""><br class=""></div><div class="">I know about PGO - and I guess the best we could do is to get profile data out of compiling my whole tree and use that when building clang - but this process seems not very well documented and unsure if this would even help.</div><div class=""><br class=""></div><div class="">Thankful for any ideas or feedback.</div><div class="">Tobias<br class=""></div></div></div></div></div></div></div></div>
_______________________________________________<br class="">
cfe-dev mailing list<br class="">
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank" class="">cfe-dev@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br class="">
</blockquote></div>
_______________________________________________<br class="">cfe-dev mailing list<br class=""><a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev<br class=""></div></blockquote></div><br class=""></div></body></html>