[LLVMdev] Explicit template instantiations in libc++

Sean Silva chisophugis at gmail.com
Tue Aug 12 15:24:28 PDT 2014


Given the dates, this seems unrelated, but there have been compile-time
issues with libc++ for some time now:
http://llvm.org/bugs/show_bug.cgi?id=14587

-- Sean Silva


On Tue, Aug 12, 2014 at 2:17 PM, Justin Bogner <mail at justinbogner.com>
wrote:

> Most of libc++ doesn't have explicit template instantiations, which
> leads to a pretty significant build time and code size cost when using
> libc++, since a large number of common templates will be emitted by the
> compiler and coalesced by the linker. Notably, in include/__config, we
> have:
>
>     #ifndef _LIBCPP_EXTERN_TEMPLATE
>     #define _LIBCPP_EXTERN_TEMPLATE(...)
>     #endif
>
> whereas before r189601 this was:
>
>     #define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;
>
> This was apparently done to fix http://llvm.org/bugs/show_bug.cgi?id=17027
> ,
> but disabling explicit instantiations seems like a pretty big hammer
> considering the drawbacks.
>
> I'd like to restore these instantiations. Any thoughts on how to handle
> things like pr17027 in a less heavy handed way?
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140812/67d8549c/attachment.html>


More information about the llvm-dev mailing list