diff options
| author | 2012-06-12 05:55:00 -0700 | |
|---|---|---|
| committer | 2012-09-15 04:15:17 -0700 | |
| commit | 21d28f510eb590f52810c83f1f3f37fe5f4adf46 (patch) | |
| tree | f937b4d39aab322541b9b83cc5dd59d8e3f2fddd /src/compiler_llvm/compiler_llvm.cc | |
| parent | 0967a25d1482d8f7b4a26c5926263e7ffa63189f (diff) | |
GBC Expander. Removed lir.
Change-Id: If8d13e36f1e6d82c2a7f7bfec62b8fb41fd8cdaa
Diffstat (limited to 'src/compiler_llvm/compiler_llvm.cc')
| -rw-r--r-- | src/compiler_llvm/compiler_llvm.cc | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc index b30486c6cc..dc796434df 100644 --- a/src/compiler_llvm/compiler_llvm.cc +++ b/src/compiler_llvm/compiler_llvm.cc @@ -23,11 +23,14 @@ #include "compiler.h" #include "ir_builder.h" #include "jni_compiler.h" -#include "method_compiler.h" +#ifndef ART_USE_DEXLANG_FRONTEND +# include "method_compiler.h" +#endif #include "oat_compilation_unit.h" #include "oat_file.h" #include "stl_util.h" #include "stub_compiler.h" +#include "utils_llvm.h" #include <llvm/LinkAllPasses.h> #include <llvm/LinkAllVMCore.h> @@ -121,10 +124,25 @@ CompiledMethod* CompilerLLVM:: CompileDexMethod(OatCompilationUnit* oat_compilation_unit) { UniquePtr<CompilationUnit> cunit(AllocateCompilationUnit()); +#ifdef 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()); +#else UniquePtr<MethodCompiler> method_compiler( new MethodCompiler(cunit.get(), compiler_, oat_compilation_unit)); return method_compiler->Compile(); +#endif } |