Integrating portable path with the Frontend.
(1) Connect the new interface oatCompileMethodToGBC and gbc_expander.
(2) Need to fix Android.common.mk for fly2iceland: Portable path has
frontend: USE_QUICK_COMPILER and backend: USE_LLVM_COMPILER.
(3) Fix Android.libart-compiler-llvm.mk so we can call the new interface.
Change-Id: I7216f378bdb5e42a35fd6fa10c1d5d161a912401
diff --git a/src/compiler_llvm/compilation_unit.h b/src/compiler_llvm/compilation_unit.h
index d1dfa0c..6244eea 100644
--- a/src/compiler_llvm/compilation_unit.h
+++ b/src/compiler_llvm/compilation_unit.h
@@ -19,7 +19,7 @@
#include "../mutex.h"
#include "globals.h"
-#ifdef ART_USE_DEXLANG_FRONTEND
+#if defined(ART_USE_DEXLANG_FRONTEND) || defined(ART_USE_QUICK_COMPILER)
# include "greenland/dex_lang.h"
#endif
#include "instruction_set.h"
@@ -28,6 +28,11 @@
#include "runtime_support_func.h"
#include "safe_map.h"
+#if defined(ART_USE_QUICK_COMPILER)
+# include "compiler.h"
+# include "oat_compilation_unit.h"
+#endif
+
#include <UniquePtr.h>
#include <string>
#include <vector>
@@ -74,7 +79,7 @@
return irb_.get();
}
-#ifdef ART_USE_DEXLANG_FRONTEND
+#if defined(ART_USE_DEXLANG_FRONTEND) || defined(ART_USE_QUICK_COMPILER)
greenland::DexLang::Context* GetDexLangContext() const {
return dex_lang_ctx_;
}
@@ -84,6 +89,15 @@
bitcode_filename_ = bitcode_filename;
}
+#if defined(ART_USE_QUICK_COMPILER)
+ void SetCompiler(Compiler* compiler) {
+ compiler_ = compiler;
+ }
+ void SetOatCompilationUnit(OatCompilationUnit* oat_compilation_unit) {
+ oat_compilation_unit_ = oat_compilation_unit;
+ }
+#endif
+
bool Materialize();
bool IsMaterialized() const {
@@ -103,9 +117,13 @@
UniquePtr<IRBuilder> irb_;
UniquePtr<RuntimeSupportBuilder> runtime_support_;
llvm::Module* module_;
-#ifdef ART_USE_DEXLANG_FRONTEND
+#if defined(ART_USE_DEXLANG_FRONTEND) || defined(ART_USE_QUICK_COMPILER)
greenland::DexLang::Context* dex_lang_ctx_;
#endif
+#if defined(ART_USE_QUICK_COMPILER)
+ Compiler* compiler_;
+ OatCompilationUnit* oat_compilation_unit_;
+#endif
std::string bitcode_filename_;