<div dir="ltr">I think we could add a new member function to SpecificBumpPtrAllocator to discard all objects without calling their dtors. Now that almost all objects are allocated from the pool, so if we call that function before exiting, exit should be as fast as _exit.<div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 9, 2016 at 9:06 PM, Davide Italiano via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Wed, Oct 26, 2016 at 11:59 AM, Rafael Espindola via llvm-commits<br>
<<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
> Author: rafael<br>
> Date: Wed Oct 26 13:59:00 2016<br>
> New Revision: 285224<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=285224&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=285224&view=rev</a><br>
> Log:<br>
> Call _exit.<br>
><br>
> As the state of lld gets more complicated, shutting down gets more<br>
> expensive.<br>
><br>
> In a normal lld run we can just call _exit immediately after renaming<br>
> the temporary output file. We still want the ability to run a full<br>
> shutdown since that is useful for detecting memory leaks.<br>
><br>
> This patch adds a --full-shutdown flag and changes lit to use it.<br>
><br>
<br>
</span>Sorry for thread-necromancing.<br>
A side-effect of this change is that, given we don't call destructors,<br>
we lose some diagnostic capabilities that I (personally) consider<br>
important.<br>
Most notably, -mllvm -time-passes (on an LTO build) won't print<br>
anything to stdout unless --full-shutdown is passed on the cmdline.<br>
It's a bit of a POLA violation.<br>
Considering how long an LTO build of reasonably sized software takes,<br>
it's not the best user experience, IMHO. Also, understanding why<br>
nothing is printed is not entirely obvious (need to know about<br>
--full-shutdown and understand that -time-passes actually prints in<br>
the destructor [the latter should be more natural to understand, but<br>
still]).<br>
<br>
With that in mind, I'm not sure there's a lot we can do without<br>
switching the default (which I'm not entirely in favour of). Maybe,<br>
Rafael, we can document what's the lld default behavior and bring this<br>
case as an example so that people are less surprised?<br>
<br>
Let me know what you think.<br>
<br>
<br>
--<br>
Davide<br>
<div class="m_5151152564860210896HOEnZb"><div class="m_5151152564860210896h5">______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div></div>