Fix Portable build
A previous change broke the ability to compile the Portable build.
Instead of building Portable, we unwittingly were building Iceland.
This CL fixes that, along with some bitrot unknowingly introduced
by subsequent CLs.
In particular, the debugger support change to add an intrinsic
call to associate value definitions with the original Dalvik
VReg broke llvm's Phi constraint. Fixed.
However, problems remain. Though the build is now fixed, CLs
subsequent to the makefile breakage broke the Portable llvm backend.
This CL will shift all Portable compilations to Iceland while the
new breakage is being addressed.
Change-Id: I7b08b26ed653a7b477f0ae9a226b7ee09c6b3398
diff --git a/src/compiler_llvm/compiler_llvm.cc b/src/compiler_llvm/compiler_llvm.cc
index 6de10e6..29c381d 100644
--- a/src/compiler_llvm/compiler_llvm.cc
+++ b/src/compiler_llvm/compiler_llvm.cc
@@ -164,6 +164,18 @@
return method_compiler->Compile();
} else {
+
+#if 1
+ /*
+ * FIXME: temporary workaround
+ * Until Portable/llvm is fixed, use Iceland.
+ */
+ UniquePtr<MethodCompiler> method_compiler(
+ new MethodCompiler(cunit.get(), compiler_, oat_compilation_unit));
+
+ return method_compiler->Compile();
+#endif
+
// TODO: consolidate ArtCompileMethods
CompileOneMethod(*compiler_,
kPortable,
@@ -181,9 +193,10 @@
cunit->Materialize();
- Compiler::MethodReference mref(dex_file_, method_idx_);
- return new CompiledMethod(cunit_->GetInstructionSet(),
- cunit_->GetCompiledCode(),
+ Compiler::MethodReference mref(oat_compilation_unit->GetDexFile(),
+ oat_compilation_unit->GetDexMethodIndex());
+ return new CompiledMethod(compiler_->GetInstructionSet(),
+ cunit->GetCompiledCode(),
*verifier::MethodVerifier::GetDexGcMap(mref));
}
#else