Reorder LLVM initialize procedure.

Change-Id: I7c5683c010d936eaa893866dc65b1254359eb8f6
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc
index dce7f91..b517d47 100644
--- a/src/compiler_llvm/compiler_llvm.cc
+++ b/src/compiler_llvm/compiler_llvm.cc
@@ -55,12 +55,18 @@
 pthread_once_t llvm_initialized = PTHREAD_ONCE_INIT;
 
 void InitializeLLVM() {
+  // Initialize LLVM internal data structure for multithreading
+  llvm::llvm_start_multithreaded();
+
   // NOTE: Uncomment following line to show the time consumption of LLVM passes
   //llvm::TimePassesIsEnabled = true;
 
   // Enable -arm-reserve-r9
   ReserveR9 = true;
 
+  // Enable -arm-long-calls
+  EnableARMLongCalls = false;
+
   // Initialize LLVM target, MC subsystem, asm printer, and asm parser
   llvm::InitializeAllTargets();
   llvm::InitializeAllTargetMCs();
@@ -68,9 +74,6 @@
   llvm::InitializeAllAsmParsers();
   // TODO: Maybe we don't have to initialize "all" targets.
 
-  // Enable -arm-long-calls
-  EnableARMLongCalls = false;
-
   // Initialize LLVM optimization passes
   llvm::PassRegistry &registry = *llvm::PassRegistry::getPassRegistry();
 
@@ -83,9 +86,6 @@
   llvm::initializeInstCombine(registry);
   llvm::initializeInstrumentation(registry);
   llvm::initializeTarget(registry);
-
-  // Initialize LLVM internal data structure for multithreading
-  llvm::llvm_start_multithreaded();
 }
 
 // The Guard to Shutdown LLVM