Create an instance of CompilerLLVM in the constructor of Compiler.

(cherry picked from commit 120539c9a333789f52dd75aa3ec2d303c7cf2119)

Change-Id: I43d10f712e515cffd2f97e628a9d2aa2ff994f5b
diff --git a/src/compiler.cc b/src/compiler.cc
index 0eb4301..0431d74 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -330,6 +330,18 @@
   }
   VLOG(compiler) << "dlopen(\"" << compiler_so_name << "\", RTLD_LAZY) returned " << compiler_library_;
 
+#if defined(ART_USE_LLVM_COMPILER)
+  // Initialize compiler_context_
+  typedef void (*InitCompilerContextFn)(Compiler&);
+
+  InitCompilerContextFn init_compiler_context =
+    FindFunction<void (*)(Compiler&)>(compiler_so_name,
+                                      compiler_library_,
+                                      "ArtInitCompilerContext");
+
+  init_compiler_context(*this);
+#endif
+
   compiler_ = FindFunction<CompilerFn>(compiler_so_name, compiler_library_, "ArtCompileMethod");
   jni_compiler_ = FindFunction<JniCompilerFn>(compiler_so_name, compiler_library_, "ArtJniCompileMethod");
   create_invoke_stub_ = FindFunction<CreateInvokeStubFn>(compiler_so_name, compiler_library_, "ArtCreateInvokeStub");
@@ -1397,17 +1409,25 @@
 
 #if defined(ART_USE_LLVM_COMPILER)
 void Compiler::SetElfFileName(std::string const& filename) {
-  elf_filename_ = filename;
+  typedef void (*SetElfFileNameFn)(Compiler&, std::string const&);
+
+  SetElfFileNameFn set_elf_file_name =
+    FindFunction<SetElfFileNameFn>(MakeCompilerSoName(instruction_set_),
+                                   compiler_library_,
+                                   "compilerLLVMSetElfFileName");
+
+  set_elf_file_name(*this, filename);
 }
 
 void Compiler::SetBitcodeFileName(std::string const& filename) {
-  bitcode_filename_ = filename;
-}
-std::string const& Compiler::GetElfFileName() {
-  return elf_filename_;
-}
-std::string const& Compiler::GetBitcodeFileName() {
-  return bitcode_filename_;
+  typedef void (*SetBitcodeFileNameFn)(Compiler&, std::string const&);
+
+  SetBitcodeFileNameFn set_bitcode_file_name =
+    FindFunction<SetBitcodeFileNameFn>(MakeCompilerSoName(instruction_set_),
+                                       compiler_library_,
+                                       "compilerLLVMSetBitcodeFileName");
+
+  set_bitcode_file_name(*this, filename);
 }
 #endif