opt: Initialize asm printers
authorTobias Grosser <tobias@grosser.es>
Fri, 13 Jun 2014 16:12:08 +0000 (16:12 +0000)
committerTobias Grosser <tobias@grosser.es>
Fri, 13 Jun 2014 16:12:08 +0000 (16:12 +0000)
Without initializing the assembly printers a shared library build of opt is
linked with these libraries whereas for a static build these libraries are dead
code eliminated. This is unfortunate for plugins in case they want to use them,
as they neither can rely on opt to provide this functionality nor can they link
the printers in themselves as this breaks with a shared object build of opt.

This patch calls InitializeAllAsmPrinters() from opt, which increases the static
binary size from 50MB -> 52MB on my system (all backends compiled) and causes no
measurable increase in the time needed to run 'make check'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210914 91177308-0d34-0410-b5e6-96231b3b80d8

tools/opt/opt.cpp

index 6f0fbf66b73a9abe77662df1a9ea07ee2a4b2a83..6ba6340040b35d109e9c4c937a7231bf1d708bf2 100644 (file)
@@ -336,6 +336,7 @@ int main(int argc, char **argv) {
 
   InitializeAllTargets();
   InitializeAllTargetMCs();
+  InitializeAllAsmPrinters();
 
   // Initialize passes
   PassRegistry &Registry = *PassRegistry::getPassRegistry();