Prune dexlang from the llvm compiler.
Change-Id: I176d5226f71e96368d5264d88d38c786ad416a97
diff --git a/src/compiler_llvm/compilation_unit.cc b/src/compiler_llvm/compilation_unit.cc
index 596169b..78bc50d 100644
--- a/src/compiler_llvm/compilation_unit.cc
+++ b/src/compiler_llvm/compilation_unit.cc
@@ -80,11 +80,7 @@
namespace art {
namespace compiler_llvm {
-#if defined(ART_USE_DEXLANG_FRONTEND)
-llvm::FunctionPass*
-CreateGBCExpanderPass(const greenland::IntrinsicHelper& intrinsic_helper,
- IRBuilder& irb);
-#elif defined(ART_USE_PORTABLE_COMPILER)
+#if defined(ART_USE_PORTABLE_COMPILER)
llvm::FunctionPass*
CreateGBCExpanderPass(const greenland::IntrinsicHelper& intrinsic_helper, IRBuilder& irb,
Compiler* compiler, OatCompilationUnit* oat_compilation_unit);
@@ -110,10 +106,6 @@
// Include the runtime function declaration
makeLLVMModuleContents(module_);
-#if defined(ART_USE_DEXLANG_FRONTEND)
- dex_lang_ctx_ = new greenland::DexLang::Context(*module_);
-#endif
-
// Create IRBuilder
irb_.reset(new IRBuilder(*context_, *module_));
@@ -138,9 +130,7 @@
CompilationUnit::~CompilationUnit() {
-#if defined(ART_USE_DEXLANG_FRONTEND)
- delete dex_lang_ctx_;
-#elif defined(ART_USE_PORTABLE_COMPILER)
+#if defined(ART_USE_PORTABLE_COMPILER)
llvm::LLVMContext* llvm_context = context_.release(); // Managed by llvm_info_
CHECK(llvm_context != NULL);
#endif
diff --git a/src/compiler_llvm/compilation_unit.h b/src/compiler_llvm/compilation_unit.h
index 6ebac9a..b0d072b 100644
--- a/src/compiler_llvm/compilation_unit.h
+++ b/src/compiler_llvm/compilation_unit.h
@@ -20,9 +20,6 @@
#include "base/logging.h"
#include "base/mutex.h"
#include "globals.h"
-#if defined(ART_USE_DEXLANG_FRONTEND)
-# include "greenland/dex_lang.h"
-#endif
#include "instruction_set.h"
#include "runtime_support_builder.h"
#include "runtime_support_func.h"
@@ -80,12 +77,6 @@
return irb_.get();
}
-#if defined(ART_USE_DEXLANG_FRONTEND)
- greenland::DexLang::Context* GetDexLangContext() const {
- return dex_lang_ctx_;
- }
-#endif
-
void SetBitcodeFileName(const std::string& bitcode_filename) {
bitcode_filename_ = bitcode_filename;
}
@@ -121,9 +112,6 @@
UniquePtr<IRBuilder> irb_;
UniquePtr<RuntimeSupportBuilder> runtime_support_;
llvm::Module* module_; // Managed by context_
-#if defined(ART_USE_DEXLANG_FRONTEND)
- greenland::DexLang::Context* dex_lang_ctx_;
-#endif
#if defined(ART_USE_PORTABLE_COMPILER)
UniquePtr<LLVMInfo> llvm_info_;
Compiler* compiler_;
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc
index c807b3d..97d005c 100644
--- a/src/compiler_llvm/compiler_llvm.cc
+++ b/src/compiler_llvm/compiler_llvm.cc
@@ -24,9 +24,7 @@
#include "compiler.h"
#include "ir_builder.h"
#include "jni_compiler.h"
-#ifndef ART_USE_DEXLANG_FRONTEND
-# include "method_compiler.h"
-#endif
+#include "method_compiler.h"
#include "oat_compilation_unit.h"
#include "oat_file.h"
#include "stub_compiler.h"
@@ -141,20 +139,7 @@
CompileDexMethod(OatCompilationUnit* oat_compilation_unit, InvokeType invoke_type) {
UniquePtr<CompilationUnit> cunit(AllocateCompilationUnit());
-#if defined(ART_USE_DEXLANG_FRONTEND)
- // Run DexLang for Dex to Greenland Bitcode
- UniquePtr<greenland::DexLang> dex_lang(
- new greenland::DexLang(*cunit->GetDexLangContext(), *compiler_,
- *oat_compilation_unit));
-
- llvm::Function* func = dex_lang->Build();
- CHECK(func != NULL);
-
- cunit->Materialize();
-
- return new CompiledMethod(cunit->GetInstructionSet(),
- cunit->GetCompiledCode());
-#elif defined(ART_USE_PORTABLE_COMPILER)
+#if defined(ART_USE_PORTABLE_COMPILER)
std::string methodName(PrettyMethod(oat_compilation_unit->GetDexMethodIndex(),
*oat_compilation_unit->GetDexFile()));
if (insn_set_ == kX86) {
diff --git a/src/compiler_llvm/gbc_expander.cc b/src/compiler_llvm/gbc_expander.cc
index 0f71512..c285c0b 100644
--- a/src/compiler_llvm/gbc_expander.cc
+++ b/src/compiler_llvm/gbc_expander.cc
@@ -1178,9 +1178,9 @@
}
void GBCExpanderPass::InsertStackOverflowCheck(llvm::Function& func) {
- // DexLang generates all alloca instruction in the first basic block of the
- // FUNC and also there's no any alloca instructions after the first non-alloca
- // instruction
+ // All alloca instructions are generated in the first basic block of the
+ // function, and there are no alloca instructions after the first non-alloca
+ // instruction.
llvm::BasicBlock* first_basic_block = &func.front();