r260267 - Pass /bigobj when building lib/ASTMatchers/Dynamic/Registry.cpp

Reid Kleckner via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 9 12:59:45 PST 2016


On Tue, Feb 9, 2016 at 12:32 PM, Aaron Ballman <aaron at aaronballman.com>
wrote:

> On Tue, Feb 9, 2016 at 2:53 PM, Reid Kleckner via cfe-commits
> <cfe-commits at lists.llvm.org> wrote:
> > Author: rnk
> > Date: Tue Feb  9 13:53:30 2016
> > New Revision: 260267
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=260267&view=rev
> > Log:
> > Pass /bigobj when building lib/ASTMatchers/Dynamic/Registry.cpp
> >
> > This is the third time it has crossed the 2^16 section limit. We've
> > already spent time optimizing this file to reduce template
> > instantiations, and it's not clear that there is anymore low hanging
> > fruit.
>
> Bummer. Do we have any mechanisms in place that will bark loudly at us
> when we accidentally introduce a large quantity of symbols from this
> file now? That has also happened a few times, and /bigobj warnings
> were the primary way we were notified (since it's difficult to tell
> from file size alone).
>

No, there isn't any mechanism. I think what we really should be worrying
about is overall code size, and that this particular section count limit is
arbitrary.

If we tackled the code size problem directly, we'd use a tool to highlight
code that has a high source-line-to-code-byte ratio. I know Chromium has
done this in the past to identify overly inlined functions and things that
shouldn't be templates.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160209/18222054/attachment.html>


More information about the cfe-commits mailing list