OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Test optimization of redundant array loads. | 5 // Test optimization of redundant array loads. |
6 | 6 |
7 var A = [0,2,3]; | 7 var A = [0,2,3]; |
8 | 8 |
9 test1(a) { | 9 test1(a) { |
10 int x = a[0]; | 10 int x = a[0]; |
11 int y = a[1]; | 11 int y = a[1]; |
12 ++a[0]; | 12 ++a[0]; |
13 return a[0] + y + a[2]; | 13 return a[0] + y + a[2]; |
14 } | 14 } |
15 | 15 |
16 | 16 |
17 int test2(a) { | 17 int test2(a) { |
18 return a[2] + a[2]; | 18 return a[2] + a[2]; |
19 } | 19 } |
20 | 20 |
21 | 21 |
22 main() { | 22 main() { |
23 for (int i = 0; i < 10000; i++) { | 23 for (int i = 0; i < 10000; i++) { |
24 test1(A); | 24 test1(A); |
25 test2(A); | 25 test2(A); |
26 } | 26 } |
27 Expect.equals(10006, test1(A)); | 27 Expect.equals(10006, test1(A)); |
28 Expect.equals(6, test2(A)); | 28 Expect.equals(6, test2(A)); |
29 } | 29 } |
OLD | NEW |