| /* APPLE LOCAL file lno */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O1 -floop-test -fdump-tree-lptest-details" } */ |
| |
| |
| int bar (void); |
| |
| int foo () |
| { |
| int a = -100; |
| |
| /* This exercises a code with two loop nests. */ |
| |
| /* loop_1 runs 100 times. */ |
| while (a < 0) |
| a++; |
| |
| a -= 77; |
| |
| /* loop_2 runs 26 times. */ |
| while (a < 0) |
| a+=3; |
| } |
| |
| /* The analyzer sees two loop nests: |
| for the first, it determines the evolution: |
| a -> {-100, +, 1}_1 |
| |
| and for the second, it determines that the first loop ends at 0 and then: |
| a -> {-77, +, 3}_2 |
| |
| When the constant propagation is postponed, the analyzer detects |
| for the second loop the evolution function: |
| a -> {a_5, +, 3}_2 |
| |
| */ |
| |
| /* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 100" 1 "lptest"} } */ |
| /* { dg-final { scan-tree-dump-times "set_nb_iterations_in_loop = 26" 1 "lptest"} } */ |
| |
| |