Try/Catch analysis; various workarounds
Fixed a couple of codegen bugs. Added a temporary workaround until
SSA renaming problem is fixed. By enabling the "CompileDexLibCore"
test in compiler_test.cc and disabling the jni_compiler, we appear to
be successfully compiling 17,641 methods of libcore (note: of those,
4 exhibit the SSA problem).
Also turned off most of the compiler logging, and disabled the fast
path for invoke virtual (which seems to be broken).
Change-Id: I0ecf460cba209f885209efbee62e9f80bffbf666
diff --git a/src/compiler_test.cc b/src/compiler_test.cc
index e3ff47f..cc5c6bc 100644
--- a/src/compiler_test.cc
+++ b/src/compiler_test.cc
@@ -135,6 +135,13 @@
1000);
}
+TEST_F(CompilerTest, CatchTestNoThrow) {
+ CompileDirectMethod(NULL, "java.lang.Object", "<init>", "()V");
+ const ClassLoader* class_loader = LoadDex("IntMath");
+ AssertStaticIntMethod(class_loader, "IntMath", "catchBlockNoThrow", "(I)I",
+ 1123, 1000);
+}
+
TEST_F(CompilerTest, StaticFieldTest) {
AssertStaticIntMethod(LoadDex("IntMath"), "IntMath", "staticFieldTest", "(I)I", 1404,
404);