summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2015-04-25 23:39:27 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-04-25 23:39:27 +0000
commitdef0d613ae08a64c2dd101b501a555567fc3cc1e (patch)
treee5a8e600e5f3498f249fdafa39506bb9baee6fb5
parentafa563a6879d5494caea47f947417dc79a00908c (diff)
parent29d577f58f9153c2c0a9b381afe4070bc00941b8 (diff)
am 29d577f5: am 8b8315bb: am 3f4fa70a: Merge "ART: Test for GVN skipping"
* commit '29d577f58f9153c2c0a9b381afe4070bc00941b8': ART: Test for GVN skipping
-rw-r--r--test/090-loop-formation/expected.txt1
-rw-r--r--test/090-loop-formation/src/Main.java26
2 files changed, 27 insertions, 0 deletions
diff --git a/test/090-loop-formation/expected.txt b/test/090-loop-formation/expected.txt
index b7e0bb3d11..b945c305b2 100644
--- a/test/090-loop-formation/expected.txt
+++ b/test/090-loop-formation/expected.txt
@@ -3,3 +3,4 @@ counter2 is 32767
counter3 is 32767
counter4 is 0
counter5 is 65534
+256
diff --git a/test/090-loop-formation/src/Main.java b/test/090-loop-formation/src/Main.java
index 7c16667ff0..16ff3b2eff 100644
--- a/test/090-loop-formation/src/Main.java
+++ b/test/090-loop-formation/src/Main.java
@@ -52,5 +52,31 @@ public class Main {
System.out.println("counter3 is " + counter3);
System.out.println("counter4 is " + counter4);
System.out.println("counter5 is " + counter5);
+
+ deeplyNested();
+ }
+
+ // GVN is limited to a maximum loop depth of 6. To track whether dependent passes are
+ // correctly turned off, test some very simple, but deeply nested loops.
+ private static void deeplyNested() {
+ int sum = 0;
+ for (int i = 0; i < 2; i++) {
+ for (int j = 0; j < 2; j++) {
+ for (int k = 0; k < 2; k++) {
+ for (int l = 0; l < 2; l++) {
+ for (int m = 0; m < 2; m++) {
+ for (int n = 0; n < 2; n++) {
+ for (int o = 0; o < 2; o++) {
+ for (int p = 0; p < 2; p++) {
+ sum++;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ System.out.println(sum);
}
}