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

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 9 12:32:21 PST 2016


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).

~Aaron

>
> Modified:
>     cfe/trunk/lib/ASTMatchers/Dynamic/CMakeLists.txt
>
> Modified: cfe/trunk/lib/ASTMatchers/Dynamic/CMakeLists.txt
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ASTMatchers/Dynamic/CMakeLists.txt?rev=260267&r1=260266&r2=260267&view=diff
> ==============================================================================
> --- cfe/trunk/lib/ASTMatchers/Dynamic/CMakeLists.txt (original)
> +++ cfe/trunk/lib/ASTMatchers/Dynamic/CMakeLists.txt Tue Feb  9 13:53:30 2016
> @@ -1,5 +1,14 @@
>  set(LLVM_LINK_COMPONENTS support)
>
> +# The registry source file ends up generating a lot of sections for each
> +# matcher. Each matcher appears to get a vtable and several methods. Each
> +# method needs .text, .pdata, .xdata, and .debug sections, adding to the
> +# section multiplier. By default MSVC has a 2^16 limit on the number of
> +# sections in an object file, and this needs more than that.
> +if (MSVC)
> +  set_source_files_properties(Registry.cpp PROPERTIES COMPILE_FLAGS /bigobj)
> +endif()
> +
>  add_clang_library(clangDynamicASTMatchers
>    Diagnostics.cpp
>    VariantValue.cpp
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list