diff options
Diffstat (limited to 'test/090-loop-formation')
-rw-r--r-- | test/090-loop-formation/expected.txt | 1 | ||||
-rw-r--r-- | test/090-loop-formation/src/Main.java | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/test/090-loop-formation/expected.txt b/test/090-loop-formation/expected.txt index b7e0bb3..b945c30 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 7c16667..16ff3b2 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); } } |