<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 29, 2014 at 3:26 PM, Alp Toker <span dir="ltr"><<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
On 29/01/2014 20:06, Sean Silva wrote:<div class="im"><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
<br>
<br>
On Tue, Jan 28, 2014 at 12:45 PM, Nico Weber <<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a> <mailto:<a href="mailto:thakis@chromium.org" target="_blank">thakis@chromium.org</a>>> wrote:<br>

<br>
    I believe there was a thread about not forking the driver a while<br>
    ago, but I'm unable to find it. As far as I remember, Chris<br>
    Lattner wanted to get rid of it for aesthetic reasons and to save<br>
    the milliseconds of overhead it adds (I think doing this has<br>
    originally been the plan, see the "fork/exec" section on<br>
    <a href="http://lists.cs.uiuc.edu/pipermail/cfe-dev/2009-December/007211.html" target="_blank">http://lists.cs.uiuc.edu/<u></u>pipermail/cfe-dev/2009-<u></u>December/007211.html</a>).<br>
    At the end, the decision was made to keep the subprocess for cc1,<br>
    but I don't remember all the reasons. I think crash reporting was<br>
    part of the discussion, but there was half a plan to keep that<br>
    feature with in-process crash reporting somehow.<br>
<br>
    Maybe someone still has a copy of that thread in their inbox?<br>
    Keywords "lattner dgregor cc1 crash fork exec" or similar might<br>
    find it.<br>
<br>
<br>
The thread you linked to predates my LLVM involvement, but I remember another thread (long time ago) that I was involved in where basically it was asked "is this a measurable slowdown?" (my me or someone else, I forget) and nobody could provide real numbers supporting that it was a measurable slowdown (even on Windows). Can't see to find the thread in my email though.<br>

<br>
Do we have real performance numbers demonstrating a slowdown at this point?<br>
</blockquote>
<br></div>
Hi Sean,<br>
<br>
I have a patch now that pushes all self-invocations in-process without doing anything else clever such as reusing FileManager stat caches or in-memory object files (6 line diff, posted in another part of this thread).<br>

<br>
Haven't had a chance to time it yet, but it doesn't look like an earth-shattering win on OS X (5 reruns of make check show around 2 seconds saved from a 30 second run as a very early indication).<br></blockquote>
<div><br></div><div><div>However, make check runs the tests too (with the just-built binary, rather than the one under test, which is confusing). It would be better to isolate just the build time with the modified compiler (and ensuring that both the control compiler and the modified compiler are tested building the same source tree).</div>
</div><div><br></div><div>The fact that `make check` also runs the test suites would make the speedup even more impressive. 2 sec out of 30 sec corresponds to ~6% improvement. Estimating that 50% of the time of `make check` is spent running the test suite (which takes the same amount of time either way, since the just-built compiler is identical), this is a >10% improvement in compilation speed. If the test suite takes 90% of the time, then it would correspond to a >60% improvement in compilation speed (unlikely).</div>
<div><br></div><div>When you do more thorough testing, could you please provide the raw data so that geeks like me can analyze it? I've grown very cautious about believing in people's statistical results without seeing the data and double-checking (at least doing a distribution plot or such).</div>
<div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<br>
On the other hand it's been fun to debug the driver with this setup and I suspect there'll be a bigger win on Windows.<br>
<br>
Another patch I'm cooking up just to see "what happens", is to use the IPCChannel facility recently added to LLVM to avoid the driver invocation itself.<br>
<br>
Alp.<br>
<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">
<br>
-- Sean Silva<br>
<br>
<br>
<br>
    On Tue, Jan 28, 2014 at 7:19 AM, Rafael Espíndola<br></div>
    <<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a> <mailto:<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@<u></u>gmail.com</a>>><div class="im">
<br>
    wrote:<br>
<br>
        On 27 January 2014 17:27, Reid Kleckner <<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a><br></div><div class="im">
        <mailto:<a href="mailto:rnk@google.com" target="_blank">rnk@google.com</a>>> wrote:<br>
        > As an alternative, on Windows we could rig up some kind of<br>
        SEH filter to do<br>
        > crash recovery.  Then we could save the subprocess<br>
        invocation and speed<br>
        > things up.<br>
<br>
        Breakpad is used by both chrome and firefox for this. If going<br>
        this<br>
        path, please make sure the same technique is used for all systems.<br>
<br>
        Cheers,<br>
        Rafale<br>
        ______________________________<u></u>_________________<br>
        cfe-dev mailing list<br></div>
        <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a> <mailto:<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a>><div class="im"><br>
        <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
<br>
<br>
<br>
    ______________________________<u></u>_________________<br>
    cfe-dev mailing list<br></div>
    <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a> <mailto:<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a>><div class="im"><br>
    <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</div></blockquote>
<br><div class=""><div class="h5">
-- <br>
<a href="http://www.nuanti.com" target="_blank">http://www.nuanti.com</a><br>
the browser experts<br>
<br>
</div></div></blockquote></div><br></div></div>