Move llvm::PassRegistry to InitializeLLVM().

Change-Id: I0b897b7dddc927c8f8dbdc73f3598304a435819e
diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index 7a2857c..d6a39f4 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -33,8 +33,6 @@
 #include <llvm/CallGraphSCCPass.h>
 #include <llvm/DerivedTypes.h>
 #include <llvm/LLVMContext.h>
-#include <llvm/LinkAllPasses.h>
-#include <llvm/LinkAllVMCore.h>
 #include <llvm/Module.h>
 #include <llvm/PassManager.h>
 #include <llvm/Support/Debug.h>
@@ -99,19 +97,6 @@
 
 
 bool CompilationUnit::Materialize() {
-  // Initialize LLVM optimization passes
-  llvm::PassRegistry &Registry = *llvm::PassRegistry::getPassRegistry();
-
-  llvm::initializeCore(Registry);
-  llvm::initializeScalarOpts(Registry);
-  llvm::initializeIPO(Registry);
-  llvm::initializeAnalysis(Registry);
-  llvm::initializeIPA(Registry);
-  llvm::initializeTransformUtils(Registry);
-  llvm::initializeInstCombine(Registry);
-  llvm::initializeInstrumentation(Registry);
-  llvm::initializeTarget(Registry);
-
   // Lookup the LLVM target
   char const* target_triple = NULL;
   char const* target_attr = NULL;
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc
index 0985894..146f577 100644
--- a/src/compiler_llvm/compiler_llvm.cc
+++ b/src/compiler_llvm/compiler_llvm.cc
@@ -24,6 +24,8 @@
 #include "oat_compilation_unit.h"
 #include "upcall_compiler.h"
 
+#include <llvm/LinkAllPasses.h>
+#include <llvm/LinkAllVMCore.h>
 #include <llvm/Support/TargetSelect.h>
 #include <llvm/Support/Threading.h>
 
@@ -40,6 +42,19 @@
   llvm::InitializeAllAsmParsers();
   // TODO: Maybe we don't have to initialize "all" targets.
 
+  // Initialize LLVM optimization passes
+  llvm::PassRegistry &registry = *llvm::PassRegistry::getPassRegistry();
+
+  llvm::initializeCore(registry);
+  llvm::initializeScalarOpts(registry);
+  llvm::initializeIPO(registry);
+  llvm::initializeAnalysis(registry);
+  llvm::initializeIPA(registry);
+  llvm::initializeTransformUtils(registry);
+  llvm::initializeInstCombine(registry);
+  llvm::initializeInstrumentation(registry);
+  llvm::initializeTarget(registry);
+
   // Initialize LLVM internal data structure for multithreading
   llvm::llvm_start_multithreaded();
 }