Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Side by Side Diff: tests/language/branch_canonicalization_test.dart

Issue 19034002: Add VMOptions to optimize tests that need to be (Part I). (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 that branch fusion correctly sets branch environment for comparisons 5 // Test that branch fusion correctly sets branch environment for comparisons
6 // that require unboxing and does not fuse branches that can deoptimize. 6 // that require unboxing and does not fuse branches that can deoptimize.
7 // VMOptions=--optimization-counter-threshold=10 --no-use-osr
7 8
8 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
9 10
10 var sideEffect = true; 11 var sideEffect = true;
11 12
12 barDouble(a, b) { 13 barDouble(a, b) {
13 sideEffect = false; 14 sideEffect = false;
14 final result = (a == b); 15 final result = (a == b);
15 sideEffect = !sideEffect; 16 sideEffect = !sideEffect;
16 return result; 17 return result;
(...skipping 24 matching lines...) Expand all
41 sideEffect = !sideEffect; 42 sideEffect = !sideEffect;
42 return result; 43 return result;
43 } 44 }
44 45
45 fooPoly(a, b) => barPoly(a, b) ? 1 : 0; 46 fooPoly(a, b) => barPoly(a, b) ? 1 : 0;
46 47
47 main () { 48 main () {
48 final a = 1.0; 49 final a = 1.0;
49 final b = 1 << 62; 50 final b = 1 << 62;
50 final x = new A(), y = new B(), z = new C(); 51 final x = new A(), y = new B(), z = new C();
51 for (var i = 0; i < 10000; i++) { 52 for (var i = 0; i < 20; i++) {
52 Expect.equals(1, fooDouble(a, a)); 53 Expect.equals(1, fooDouble(a, a));
53 Expect.isTrue(sideEffect); 54 Expect.isTrue(sideEffect);
54 Expect.equals(0, fooMint(b, 0)); 55 Expect.equals(0, fooMint(b, 0));
55 Expect.isTrue(sideEffect); 56 Expect.isTrue(sideEffect);
56 Expect.equals(1, fooPoly(x, x)); 57 Expect.equals(1, fooPoly(x, x));
57 Expect.equals(0, fooPoly(y, x)); 58 Expect.equals(0, fooPoly(y, x));
58 } 59 }
59 Expect.equals(1, fooDouble(z, z)); 60 Expect.equals(1, fooDouble(z, z));
60 Expect.isTrue(sideEffect); 61 Expect.isTrue(sideEffect);
61 Expect.equals(1, fooMint(z, z)); 62 Expect.equals(1, fooMint(z, z));
62 Expect.isTrue(sideEffect); 63 Expect.isTrue(sideEffect);
63 Expect.equals(1, fooPoly(z, z)); 64 Expect.equals(1, fooPoly(z, z));
64 Expect.isTrue(sideEffect); 65 Expect.isTrue(sideEffect);
65 } 66 }
OLDNEW
« no previous file with comments | « tests/language/bit_operations_test.dart ('k') | tests/language/compound_assignment_operator_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698