Actually the entire point of the CL is to move the full initializer.  By keeping it in the same place the linker has to include all those extra symbols.  It can do dead code elimination, but it's not 100% foolproof.  The reason this CL reduces LLGS binary size from 16M to 14M is precisely because full initializer is moved out<br><div class="gmail_quote">On Thu, Mar 19, 2015 at 10:46 PM Oleksiy Vyalov <<a href="mailto:ovyalov@google.com">ovyalov@google.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">================<br>
Comment at: source/API/<u></u>SystemInitializerFull.cpp:1<br>
@@ +1,2 @@<br>
+//===-- SystemInitializerFull.cpp ------------------------------<u></u>-*- C++ -*-===//<br>
+//<br>
----------------<br>
Could we keep all initializers within source/Initialization folder?<br>
<br>
================<br>
Comment at: source/Initialization/<u></u>SystemLifetimeManager.cpp:68<br>
@@ +67,3 @@<br>
+    {<br>
+        // Don't reset the shared_ptr.  This way someone can theoretically call<br>
+        // Initialize again to re-initialize the system.<br>
----------------<br>
s/shared_ptr/unique_ptr<br>
<br>
<a href="http://reviews.llvm.org/D8462" target="_blank">http://reviews.llvm.org/D8462</a><br>
<br>
EMAIL PREFERENCES<br>
  <a href="http://reviews.llvm.org/settings/panel/emailpreferences/" target="_blank">http://reviews.llvm.org/<u></u>settings/panel/<u></u>emailpreferences/</a><br>
<br>
<br>
</blockquote></div>