Revert "Move a 530-checker-lse test from java to smali"
This reverts commit ab86413a9b5fab9eb7d3967d30277b2e7b580e9a.
Also reverts commit dabd5639e3b65f8e96e4aafe004f1c0ccae3c5c3.
Reason for revert: Move test back to Java to enable RI testing.
Make the checker assertions more robust by using CHECK-DAG
and checking for excessive instructions in separate blocks.
Test: testrunner.py --host --optimizing --jvm -t 530-checker-lse
Bug: 65168732
Bug: 73888836
Change-Id: I3767c3515e910e7e7e50e62e5b536f2976721236
diff --git a/test/530-checker-lse/src/Main.java b/test/530-checker-lse/src/Main.java
index 22bff0a..49b818d 100644
--- a/test/530-checker-lse/src/Main.java
+++ b/test/530-checker-lse/src/Main.java
@@ -251,6 +251,31 @@
return obj2.i;
}
+ /// CHECK-START: int Main.test10(TestClass) load_store_elimination (before)
+ /// CHECK-DAG: StaticFieldGet
+ /// CHECK-DAG: InstanceFieldGet
+ /// CHECK-DAG: StaticFieldSet
+ /// CHECK-DAG: InstanceFieldGet
+
+ /// CHECK-START: int Main.test10(TestClass) load_store_elimination (after)
+ /// CHECK-DAG: StaticFieldGet
+ /// CHECK-DAG: InstanceFieldGet
+ /// CHECK-DAG: StaticFieldSet
+
+ /// CHECK-START: int Main.test10(TestClass) load_store_elimination (after)
+ /// CHECK: NullCheck
+ /// CHECK-NOT: NullCheck
+
+ /// CHECK-START: int Main.test10(TestClass) load_store_elimination (after)
+ /// CHECK: InstanceFieldGet
+ /// CHECK-NOT: InstanceFieldGet
+
+ // Static fields shouldn't alias with instance fields.
+ static int test10(TestClass obj) {
+ TestClass.si += obj.i;
+ return obj.i;
+ }
+
/// CHECK-START: int Main.test11(TestClass) load_store_elimination (before)
/// CHECK: InstanceFieldSet
/// CHECK: InstanceFieldGet
@@ -1158,7 +1183,6 @@
Class main2 = Class.forName("Main2");
Method test4 = main2.getMethod("test4", TestClass.class, boolean.class);
Method test5 = main2.getMethod("test5", TestClass.class, boolean.class);
- Method test10 = main2.getMethod("test10", TestClass.class);
Method test23 = main2.getMethod("test23", boolean.class);
Method test24 = main2.getMethod("test24");
@@ -1181,7 +1205,7 @@
obj2 = new TestClass();
obj1.next = obj2;
assertIntEquals(test9(new TestClass()), 1);
- assertIntEquals((int)test10.invoke(null, new TestClass(3, 4)), 3);
+ assertIntEquals(test10(new TestClass(3, 4)), 3);
assertIntEquals(TestClass.si, 3);
assertIntEquals(test11(new TestClass()), 10);
assertIntEquals(test12(new TestClass(), new TestClass()), 10);