<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 12/26/2014 03:46 PM, Xinliang David
      Li wrote:<br>
    </div>
    <blockquote
cite="mid:CALRgJCN2GzFQs-po28SnshpjUJ8UtxOM0gkf1G_x7vmKXBwnOA@mail.gmail.com"
      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 moz-do-not-send="true"
href="http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-1-brief.html"
        target="_blank" style="font-family:monospace">http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-1-brief.html</a><br
        style="font-family:monospace">
      <a moz-do-not-send="true"
href="http://hubicka.blogspot.com/2014/04/linktime-optimization-in-gcc-2-firefox.html"
        target="_blank" style="font-family:monospace">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>
    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>
    <br>
    Philip<br>
    <br>
    <br>
    <br>
  </body>
</html>