diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/115-native-bridge/run | 2 | ||||
| -rw-r--r-- | test/562-bce-preheader/src/Main.java | 23 | ||||
| -rw-r--r-- | test/565-checker-doublenegbitwise/src/Main.java | 30 | ||||
| -rw-r--r-- | test/Android.run-test.mk | 11 |
4 files changed, 40 insertions, 26 deletions
diff --git a/test/115-native-bridge/run b/test/115-native-bridge/run index ea2045b86c..aeb5721aac 100644 --- a/test/115-native-bridge/run +++ b/test/115-native-bridge/run @@ -28,4 +28,4 @@ ln -s ${LIBPATH}/libarttestd.so libarttestd2.so LEFT=$(echo ${ARGS} | sed -r 's/-Djava.library.path.*//') RIGHT=$(echo ${ARGS} | sed -r 's/.*Djava.library.path[^ ]* //') MODARGS="${LEFT} -Djava.library.path=`pwd` ${RIGHT}" -exec ${RUN} --runtime-option -XX:NativeBridge=libnativebridgetest.so ${MODARGS} NativeBridgeMain +exec ${RUN} --runtime-option -Xforce-nb-testing --runtime-option -XX:NativeBridge=libnativebridgetest.so ${MODARGS} NativeBridgeMain diff --git a/test/562-bce-preheader/src/Main.java b/test/562-bce-preheader/src/Main.java index 8de0533591..8b527b4f63 100644 --- a/test/562-bce-preheader/src/Main.java +++ b/test/562-bce-preheader/src/Main.java @@ -70,6 +70,26 @@ public class Main { return acc; } + /** + * An artificial example with an inconsistent phi structure during + * dynamic bce that is corrected afterwards. Note that only the last + * assignment is really live, but the other statements set up an + * interesting phi structure. + */ + private static int doit(int[] z) { + int a = 0; + for (int i = 0; i < 10; ++i) { + for (int j = i; j < 10; ++j) { + a = z[i]; + for (int k = 0; k < 10; ++k) { + a += z[k]; + a = z[i]; + } + } + } + return a; + } + public static void main(String args[]) { int[][] x = new int[2][2]; int y; @@ -96,6 +116,9 @@ public class Main { expectEquals(26, foo(a, b, 2)); expectEquals(38, foo(a, b, 3)); + int[] z = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; + expectEquals(10, doit(z)); + System.out.println("passed"); } diff --git a/test/565-checker-doublenegbitwise/src/Main.java b/test/565-checker-doublenegbitwise/src/Main.java index d681ad7e8e..c51eda8a66 100644 --- a/test/565-checker-doublenegbitwise/src/Main.java +++ b/test/565-checker-doublenegbitwise/src/Main.java @@ -37,7 +37,7 @@ public class Main { // Note: before the instruction_simplifier pass, Xor's are used instead of // Not's (the simplification happens during the same pass). - /// CHECK-START-ARM64: int Main.$opt$noinline$andToOr(int, int) instruction_simplifier (before) + /// CHECK-START: int Main.$opt$noinline$andToOr(int, int) instruction_simplifier (before) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<CstM1:i\d+>> IntConstant -1 @@ -46,14 +46,14 @@ public class Main { /// CHECK: <<And:i\d+>> And [<<Not1>>,<<Not2>>] /// CHECK: Return [<<And>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$andToOr(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$andToOr(int, int) instruction_simplifier (after) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<Or:i\d+>> Or [<<P1>>,<<P2>>] /// CHECK: <<Not:i\d+>> Not [<<Or>>] /// CHECK: Return [<<Not>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$andToOr(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$andToOr(int, int) instruction_simplifier (after) /// CHECK: Not /// CHECK-NOT: Not /// CHECK-NOT: And @@ -69,7 +69,7 @@ public class Main { // See note above. // The second Xor has its arguments reversed for no obvious reason. - /// CHECK-START-ARM64: long Main.$opt$noinline$orToAnd(long, long) instruction_simplifier (before) + /// CHECK-START: long Main.$opt$noinline$orToAnd(long, long) instruction_simplifier (before) /// CHECK: <<P1:j\d+>> ParameterValue /// CHECK: <<P2:j\d+>> ParameterValue /// CHECK: <<CstM1:j\d+>> LongConstant -1 @@ -78,14 +78,14 @@ public class Main { /// CHECK: <<Or:j\d+>> Or [<<Not1>>,<<Not2>>] /// CHECK: Return [<<Or>>] - /// CHECK-START-ARM64: long Main.$opt$noinline$orToAnd(long, long) instruction_simplifier (after) + /// CHECK-START: long Main.$opt$noinline$orToAnd(long, long) instruction_simplifier (after) /// CHECK: <<P1:j\d+>> ParameterValue /// CHECK: <<P2:j\d+>> ParameterValue /// CHECK: <<And:j\d+>> And [<<P1>>,<<P2>>] /// CHECK: <<Not:j\d+>> Not [<<And>>] /// CHECK: Return [<<Not>>] - /// CHECK-START-ARM64: long Main.$opt$noinline$orToAnd(long, long) instruction_simplifier (after) + /// CHECK-START: long Main.$opt$noinline$orToAnd(long, long) instruction_simplifier (after) /// CHECK: Not /// CHECK-NOT: Not /// CHECK-NOT: Or @@ -102,7 +102,7 @@ public class Main { * operation incorrectly. */ - /// CHECK-START-ARM64: int Main.$opt$noinline$regressInputsAway(int, int) instruction_simplifier (before) + /// CHECK-START: int Main.$opt$noinline$regressInputsAway(int, int) instruction_simplifier (before) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK-DAG: <<Cst1:i\d+>> IntConstant 1 @@ -114,7 +114,7 @@ public class Main { /// CHECK: <<Or:i\d+>> Or [<<Not1>>,<<Not2>>] /// CHECK: Return [<<Or>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$regressInputsAway(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$regressInputsAway(int, int) instruction_simplifier (after) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<Cst1:i\d+>> IntConstant 1 @@ -124,7 +124,7 @@ public class Main { /// CHECK: <<Not:i\d+>> Not [<<And>>] /// CHECK: Return [<<Not>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$regressInputsAway(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$regressInputsAway(int, int) instruction_simplifier (after) /// CHECK: Not /// CHECK-NOT: Not /// CHECK-NOT: Or @@ -143,7 +143,7 @@ public class Main { */ // See first note above. - /// CHECK-START-ARM64: int Main.$opt$noinline$notXorToXor(int, int) instruction_simplifier (before) + /// CHECK-START: int Main.$opt$noinline$notXorToXor(int, int) instruction_simplifier (before) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<CstM1:i\d+>> IntConstant -1 @@ -152,13 +152,13 @@ public class Main { /// CHECK: <<Xor:i\d+>> Xor [<<Not1>>,<<Not2>>] /// CHECK: Return [<<Xor>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$notXorToXor(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$notXorToXor(int, int) instruction_simplifier (after) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<Xor:i\d+>> Xor [<<P1>>,<<P2>>] /// CHECK: Return [<<Xor>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$notXorToXor(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$notXorToXor(int, int) instruction_simplifier (after) /// CHECK-NOT: Not public static int $opt$noinline$notXorToXor(int a, int b) { @@ -170,7 +170,7 @@ public class Main { * Check that no transformation is done when one Not has multiple uses. */ - /// CHECK-START-ARM64: int Main.$opt$noinline$notMultipleUses(int, int) instruction_simplifier (before) + /// CHECK-START: int Main.$opt$noinline$notMultipleUses(int, int) instruction_simplifier (before) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<CstM1:i\d+>> IntConstant -1 @@ -182,7 +182,7 @@ public class Main { /// CHECK: <<Add:i\d+>> Add [<<And2>>,<<And1>>] /// CHECK: Return [<<Add>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$notMultipleUses(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$notMultipleUses(int, int) instruction_simplifier (after) /// CHECK: <<P1:i\d+>> ParameterValue /// CHECK: <<P2:i\d+>> ParameterValue /// CHECK: <<One:i\d+>> IntConstant 1 @@ -193,7 +193,7 @@ public class Main { /// CHECK: <<Add:i\d+>> Add [<<And2>>,<<And1>>] /// CHECK: Return [<<Add>>] - /// CHECK-START-ARM64: int Main.$opt$noinline$notMultipleUses(int, int) instruction_simplifier (after) + /// CHECK-START: int Main.$opt$noinline$notMultipleUses(int, int) instruction_simplifier (after) /// CHECK-NOT: Or public static int $opt$noinline$notMultipleUses(int a, int b) { diff --git a/test/Android.run-test.mk b/test/Android.run-test.mk index 870b51468a..a8938fad40 100644 --- a/test/Android.run-test.mk +++ b/test/Android.run-test.mk @@ -302,12 +302,7 @@ TEST_ART_BROKEN_NO_RELOCATE_TESTS := # Temporarily disable some broken tests when forcing access checks in interpreter b/22414682 TEST_ART_BROKEN_INTERPRETER_ACCESS_CHECK_TESTS := \ - 135-MirandaDispatch \ - 137-cfi \ - 412-new-array \ - 471-uninitialized-locals \ - 506-verify-aput \ - 800-smali + 137-cfi ifneq (,$(filter interp-ac,$(COMPILER_TYPES))) ART_TEST_KNOWN_BROKEN += $(call all-run-test-names,$(TARGET_TYPES),$(RUN_TYPES),$(PREBUILD_TYPES), \ @@ -464,10 +459,7 @@ TEST_ART_BROKEN_DEFAULT_RUN_TESTS := # Known broken tests for the mips32 optimizing compiler backend. TEST_ART_BROKEN_OPTIMIZING_MIPS_RUN_TESTS := \ - 441-checker-inliner \ 510-checker-try-catch \ - 536-checker-intrinsic-optimization \ - 557-checker-instruction-simplifier-ror \ ifeq (mips,$(TARGET_ARCH)) ifneq (,$(filter optimizing,$(COMPILER_TYPES))) @@ -482,7 +474,6 @@ TEST_ART_BROKEN_OPTIMIZING_MIPS_RUN_TESTS := # Known broken tests for the mips64 optimizing compiler backend. TEST_ART_BROKEN_OPTIMIZING_MIPS64_RUN_TESTS := \ - 557-checker-instruction-simplifier-ror \ ifeq (mips64,$(TARGET_ARCH)) ifneq (,$(filter optimizing,$(COMPILER_TYPES))) |