<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Sep 19, 2015 at 6:15 PM, David Blaikie via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.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"><span style="font-size:12.8px">I was just thinking through the possible advice of encouraging users to use explicit template instantiation declarations/definitions to reduce object size.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">It seems this may hurt performance in non-LTO builds by causing what were inlinable functions to no longer be available for inlining.</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">Should we consider emitting available_externally definitions of such entities (possibly under specific/higher optimization levels)?</span></div></blockquote><div><br></div><div>We should, and we already do: <a href="http://goo.gl/V8G5kU">http://goo.gl/V8G5kU</a></div><div><br></div><div>Do you have a case where we fail to do so? It's possible there's a bug in this determination.</div></div></div></div>