Add dex_lang as common frontend to lir and LLVM. dex_lang + bc2lir =
Greenland
First commit of Greenland compiler: It's working in the sense of oat
tests. E.g., mm test-art-host-oat-Fibonacci. It shows the correct
bitcode before lir.
Change-Id: I91cbb02188325eb1fa605ed71ec7108fd2b0dbb9
diff --git a/src/verifier/method_verifier.cc b/src/verifier/method_verifier.cc
index 81c755d..e772e67 100644
--- a/src/verifier/method_verifier.cc
+++ b/src/verifier/method_verifier.cc
@@ -38,6 +38,12 @@
using namespace art::compiler_llvm;
#endif
+#if defined(ART_USE_GREENLAND_COMPILER)
+#include "greenland/backend_types.h"
+#include "greenland/inferred_reg_category_map.h"
+using namespace art::greenland;
+#endif
+
namespace art {
namespace verifier {
@@ -946,7 +952,7 @@
Compiler::MethodReference ref(dex_file_, method_idx_);
-#if !defined(ART_USE_LLVM_COMPILER)
+#if !defined(ART_USE_LLVM_COMPILER) && !defined(ART_USE_GREENLAND_COMPILER)
/* Generate a register map and add it to the method. */
UniquePtr<const std::vector<uint8_t> > map(GenerateGcMap());
@@ -964,8 +970,7 @@
foo_method_->SetGcMap(&gc_map->at(0));
}
-#else //defined(ART_USE_LLVM_COMPILER)
-
+#else // defined(ART_USE_LLVM_COMPILER) || defined(ART_USE_GREENLAND_COMPILER)
/* Generate Inferred Register Category for LLVM-based Code Generator */
const InferredRegCategoryMap* table = GenerateInferredRegCategoryMap();
verifier::MethodVerifier::SetInferredRegCategoryMap(ref, *table);
@@ -3329,7 +3334,7 @@
return (rejected_classes.find(ref) != rejected_classes.end());
}
-#if defined(ART_USE_LLVM_COMPILER)
+#if defined(ART_USE_LLVM_COMPILER) || defined(ART_USE_GREENLAND_COMPILER)
const InferredRegCategoryMap* MethodVerifier::GenerateInferredRegCategoryMap() {
uint32_t insns_size = code_item_->insns_size_in_code_units_;
uint16_t regs_size = code_item_->registers_size_;