<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 30, 2016 at 1:11 PM, Mehdi Amini <span dir="ltr"><<a href="mailto:mehdi.amini@apple.com" target="_blank">mehdi.amini@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><br>
> On Sep 30, 2016, at 12:57 PM, Carsten Mattner <<a href="mailto:carstenmattner@gmail.com" target="_blank">carstenmattner@gmail.com</a>> wrote:<br>
><br>
> On Fri, Sep 30, 2016 at 6:35 PM, Teresa Johnson <<a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a>> wrote:<br>
>> I just built a stage-1 compiler from the 3.9 release bits and built<br>
>> the lldb from head sources which worked fine. Let me try again using<br>
>> 3.9 build compiler to build 3.9 bits.<br>
><br>
> I had also started a build a few hours ago, what a coincidence. I had<br>
> to ditch both build and source trees because of cmake failing to<br>
> reconfigure due to some file it surprisingly had generated in the<br>
> source (not build) tree.<br>
><br>
> So, with -DBUILD_SHARED_LIBS=OFF, and a fresh checkout of the 3.9<br>
> release branch, I've run into the same error, this time only 39 (not a<br>
> typo, and not 3.9) ninja targets left.<br>
><br>
> Some parts finished, so here's a surprising size difference for clang-3.9.<br>
><br>
> LTO=OFF  stripped clang-3.9 is 44MB<br>
> LTO=Thin stripped clang-3.9 is 50MB<br>
<br>
</span>That’s expected: there’s more inlining and other optimizations happening.<br>
<br>
Also we rely more on linker dead stripping with ThinLTO. On MacOS it works well with the atom model, on ELF I’d expect the LTO equivalent of -ffunction-sections to be used (I don’t know if Gold and the gold-plugin have such an option though).<br></blockquote><div><br></div><div>It does, but I found you have to pass the options to the plugin to get them to kick in for any *LTO compile. See D24644 for my proposed fix. To workaround, pass them to the plugin-opt:</div><div>-Wl,--gc-sections -Wl,-plugin-opt,-function-sections  -Wl,-plugin-opt,-data-sections<br></div><div>Not sure if there is any benefit to passing them also on the command line (-ffunction-sections -fdata-sections), but probably a good idea.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Finally, there are few other things that we need to do in ThinLTO to gain a few more percents on this aspect.<br>
<span><br>
<br>
><br>
> I would have expected more aggressive pruning or at least not an<br>
> increase, though I don't know if it can be caused by<br>
> -DBUILD_SHARED_LIBS=OFF.<br>
<br>
</span>BUILD_SHARED_LIBS is a non-sense from a performance point of view. It is really not advised to use this.<br></blockquote><div><br></div><div>I actually think Carsten was not getting BUILD_SHARED_LIBS=ON as I had originally thought given the DSO error: His cmake command didn't contain it, and from his email earlier this week, the __morestack reference is coming from lib/liblldb.so, not an llvm library built shared as I had assumed. Which also explains why he is still getting it when configuring with -DBUILD_SHARED_LIBS=OFF.</div><div><br></div><div><br></div><div>I am having a bunch of trouble getting a release-built 3.9 compiler, lots of warnings when building with clang that are being turned into errors from -Werror. Need to try again with -w...</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><br>
><br>
> FYI, -DLLVM_PARALLEL_LINK_JOBS=1 didn't seem to make any difference,<br>
> seeing how each LD stop was using all available cores.<br>
<br>
</span>It only helps limiting oversubscribing the number of cores, and reduces the peak memory for the link.<br>
<br>
—<br>
<span class="gmail-m_4768352666522677029gmail-m_2030328490322035709HOEnZb"><font color="#888888">Mehdi<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail-m_4768352666522677029gmail-m_2030328490322035709gmail_signature"><span style="font-family:times;font-size:medium"><table cellspacing="0" cellpadding="0"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small"><td nowrap style="border-top:2px solid rgb(213,15,37)">Teresa Johnson |</td><td nowrap style="border-top:2px solid rgb(51,105,232)"> Software Engineer |</td><td nowrap style="border-top:2px solid rgb(0,153,57)"> <a href="mailto:tejohnson@google.com" target="_blank">tejohnson@google.com</a> |</td><td nowrap style="border-top:2px solid rgb(238,178,17)"> <a href="tel:408-460-2413" value="+14084602413" target="_blank">408-460-2413</a></td></tr></tbody></table></span></div>
</div></div>