<div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_quote">On Thu, Aug 28, 2014 at 11:19 AM, Nico Weber <span dir="ltr"><<a href="mailto:thakis@chromium.org" target="_blank" class="cremed">thakis@chromium.org</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"><div dir="ltr">The dynamic matcher stuff also takes forever to compile – does the patch that's out for review to make /bigobj not required impact compile time too? I'd expect that it'd make things faster.</div>
</blockquote><div><br></div><div><div class="gmail_extra">Some of the fixes we have done reduced the number of template instantiations by adding some dynamic typing. This reduced the number of symbols and should also reduce the compilation time, but we have not focused on compilation time so far.</div>
<div class="gmail_extra">One idea we had some time ago was to split up the registration into N files. This will reduce the number of objects per file and allow for parallel compilation. It was not ultimately done because we found other ways to stay below the symbol count limit.<br>
</div><div class="gmail_extra"> <br></div></div><div class="gmail_extra">_Sam</div><div class="gmail_extra"><br></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">
<div class=""><div class="h5">
<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 28, 2014 at 7:42 AM, Manuel Klimek <span dir="ltr"><<a href="mailto:klimek@google.com" target="_blank" class="cremed">klimek@google.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><br><div class="gmail_quote"><div><div>On Tue Aug 26 2014 at 10:30:17 PM Aaron Ballman <<a href="mailto:aaron@aaronballman.com" target="_blank" class="cremed">aaron@aaronballman.com</a>> 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">
On Tue, Aug 26, 2014 at 4:12 PM, David Majnemer<br>
<<a href="mailto:david.majnemer@gmail.com" target="_blank" class="cremed">david.majnemer@gmail.com</a>> wrote:<br>
> On Tue, Aug 26, 2014 at 12:43 PM, Samuel Benzaquen <<a href="mailto:sbenza@google.com" target="_blank" class="cremed">sbenza@google.com</a>><br>
> wrote:<br>
>><br>
>> On Tue, Aug 26, 2014 at 12:30 PM, Reid Kleckner <<a href="mailto:rnk@google.com" target="_blank" class="cremed">rnk@google.com</a>> wrote:<br>
>>><br>
>>> Mmmm, delicious template instantiation. This has come up before, and the<br>
>>> solution was to reduce the complexity of the template to avoid follow-on<br>
>>> instantiations like SmallVector<T>.<br>
>><br>
>><br>
>> In many cases, fixing this actually increases complexity of the code.<br>
>> For example, I have a change that removes ~16% of symbols by doing manual<br>
>> pointer deletion instead of using std::unique_ptr<>.<br>
>> I'll send the change for review.<br>
>><br>
>> wrt whether LLVM should build without the /bigobj flag, that would be for<br>
>> someone else to decide.<br>
><br>
><br>
> I don't see any downside from switching /bigobj on; only ancient VS<br>
> toolchains do not support it.<br>
<br>
The last time this topic raised its head, the issue wasn't with<br>
turning on /bigobj (that's supported in MSVC 2005 and up), it was a<br>
question of why there was suddenly 37000 more sections in a single<br>
object file.<br>
<br>
If we're bumping up against this limit because of known, valid<br>
reasons, then I think /bigobj makes sense. If we're bumping up against<br>
it because there's a huge influx of sections in the object file, we<br>
may want to look at reducing that to keep build perf sane.<br></blockquote><div><br></div></div></div><div>So anybody not fine with using /bigobj for VS builds?</div><div><br></div><div>Cheers,</div><div>/Manuel</div><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>
~Aaron<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="cremed">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank" class="cremed">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote></div></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank" class="cremed">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank" class="cremed">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>