<br><br><div class="gmail_quote">On Sun Dec 28 2014 at 12:17:22 PM Philip Reames <<a href="mailto:listmail@philipreames.com">listmail@philipreames.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<div>On 12/26/2014 03:46 PM, Xinliang David
Li wrote:<br>
</div>
<blockquote type="cite"><span style="font-family:monospace">Vikram, LLVM can
handle Firefox size programs. Honza wrote two good</span><br style="font-family:monospace">
<span style="font-family:monospace">articles about LTO.</span><br style="font-family:monospace">
<br style="font-family:monospace">
<a href="http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-1-brief.html" style="font-family:monospace" target="_blank">http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-1-brief.html</a><br style="font-family:monospace">
<a href="http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-2-firefox.html" style="font-family:monospace" target="_blank">http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-2-firefox.html</a><br style="font-family:monospace">
<br style="font-family:monospace">
<span style="font-family:monospace">Comparison with LLVM is
described in the second article. It took about</span><br style="font-family:monospace">
<span style="font-family:monospace">40min to finish building
Firefox with llvm using lto and -g. The</span><br style="font-family:monospace">
<span style="font-family:monospace">following is a quote:</span><br style="font-family:monospace">
<br style="font-family:monospace">
<span style="font-family:monospace">"This graph shows issues with
debug info memory use. LLVM goes up to</span><br style="font-family:monospace">
<span style="font-family:monospace">35GB. LLVM developers are also
working on debug info merging</span><br style="font-family:monospace">
<span style="font-family:monospace">improvements (equivalent to
what GCC's type merging is) and the</span><br style="font-family:monospace">
<span style="font-family:monospace">situation has improved in last
two releases until the current shape.</span><br style="font-family:monospace">
<span style="font-family:monospace">Older LLVM checkouts happily
run out of 60GB memory & 60GB swap on my</span><br style="font-family:monospace">
<span style="font-family:monospace">machine.".</span></blockquote></div><div bgcolor="#FFFFFF" text="#000000">
One thing I want to highlight in the above is that this is a build
with debug information. My understanding from listening in on
conversations at the developers meeting is that LTO w/o debug
information scales substantially better. Most of the discussion of
memory usage is specific to retaining full debug info while doing
LTO. Either compiling without debug info at all, or compiling with
only line table information results in dramatically reduced memory
usage.<br>
<br>
Note: I have no direct experience here; I'm just repeating what I've
heard. <br></div><div bgcolor="#FFFFFF" text="#000000"><br></div></blockquote><div><br></div><div>This is correct, it's also an area of active development. :)</div><div><br></div><div>Thanks!</div><div><br></div><div>-eric </div></div>