Replace some LLVM-specific code with something more general.

This basically gives any compiler a place to hang extra private data
off art::Compiler, even though only LLVM needs it right now.

Change-Id: I408778ea1010ab2ad9ec4810e5c53d468a8772c2
diff --git a/src/compiler.h b/src/compiler.h
index 55273b7..aa32854 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -32,18 +32,11 @@
 
 namespace art {
 
-#if defined(ART_USE_LLVM_COMPILER)
-namespace compiler_llvm {
-class CompilerLLVM;
-}
-#endif
-
 class AOTCompilationStats;
 class Context;
 class OatCompilationUnit;
 class TimingLogger;
 
-
 class Compiler {
  public:
   // Create a compiler targeting the requested "instruction_set".
@@ -129,15 +122,16 @@
   void SetBitcodeFileName(std::string const& filename);
   std::string const& GetElfFileName();
   std::string const& GetBitcodeFileName();
-
-  void SetCompilerLLVM(compiler_llvm::CompilerLLVM* compiler_llvm) {
-    compiler_llvm_ = compiler_llvm;
-  }
-  compiler_llvm::CompilerLLVM* GetCompilerLLVM() const {
-    return compiler_llvm_;
-  }
 #endif
 
+  void SetCompilerContext(void* compiler_context) {
+    compiler_context_ = compiler_context;
+  }
+
+  void* GetCompilerContext() const {
+    return compiler_context_;
+  }
+
  private:
 
   // Checks if class specified by type_idx is one of the image_classes_
@@ -202,7 +196,6 @@
   const std::set<std::string>* image_classes_;
 
 #if defined(ART_USE_LLVM_COMPILER)
-  compiler_llvm::CompilerLLVM* compiler_llvm_;
   std::string elf_filename_;
   std::string bitcode_filename_;
   typedef void (*CompilerCallbackFn)(Compiler& compiler);
@@ -217,6 +210,8 @@
                                         const DexFile& dex_file);
   CompilerFn compiler_;
 
+  void* compiler_context_;
+
   typedef CompiledMethod* (*JniCompilerFn)(Compiler& compiler,
                                            uint32_t access_flags, uint32_t method_idx,
                                            const ClassLoader* class_loader,