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

Side by Side Diff: frog/tests/leg/ssa_phi_codegen_test.dart

Issue 10375048: Don't allow phi equivalences along back-edges. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Inline before-check Created 8 years, 7 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
« no previous file with comments | « no previous file | frog/tests/leg/type_inference_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 // Test that parameters keep their names in the output. 4 // Test that parameters keep their names in the output.
5 5
6 #import("compiler_helper.dart"); 6 #import("compiler_helper.dart");
7 7
8 final String TEST_ONE = @""" 8 final String TEST_ONE = @"""
9 void foo(bar) { 9 void foo(bar) {
10 var a = 1; 10 var a = 1;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 RegExp regexp = const RegExp(@"a = 2"); 59 RegExp regexp = const RegExp(@"a = 2");
60 Expect.isTrue(regexp.hasMatch(generated)); 60 Expect.isTrue(regexp.hasMatch(generated));
61 61
62 regexp = const RegExp(@"a = 3"); 62 regexp = const RegExp(@"a = 3");
63 Expect.isTrue(regexp.hasMatch(generated)); 63 Expect.isTrue(regexp.hasMatch(generated));
64 64
65 regexp = const RegExp(@"print\(a\)"); 65 regexp = const RegExp(@"print\(a\)");
66 Expect.isTrue(regexp.hasMatch(generated)); 66 Expect.isTrue(regexp.hasMatch(generated));
67 67
68 generated = compile(TEST_TWO, 'main'); 68 generated = compile(TEST_TWO, 'main');
69 // TODO(ngeoffray): Add live range analysis to the codegen
70 // to make this test pass.
69 regexp = new RegExp("t = \\(?$anyIdentifier +"); 71 regexp = new RegExp("t = \\(?$anyIdentifier +");
70 Expect.isTrue(regexp.hasMatch(generated)); 72 Expect.isFalse(regexp.hasMatch(generated));
71 73
72 // TODO(ngeoffray): Add live range analysis to the codegen 74 // TODO(ngeoffray): Add live range analysis to the codegen
73 // to make this test pass. 75 // to make this test pass.
74 regexp = new RegExp("i = \\(?$anyIdentifier +"); 76 regexp = new RegExp("i = \\(?$anyIdentifier +");
75 Expect.isFalse(regexp.hasMatch(generated)); 77 Expect.isFalse(regexp.hasMatch(generated));
76 78
77 generated = compile(TEST_THREE, 'foo'); 79 generated = compile(TEST_THREE, 'foo');
78 80
79 // Check that we don't have 'val = val'. 81 // Check that we don't have 'val = val'.
80 regexp = const RegExp("val = val;"); 82 regexp = const RegExp("val = val;");
81 Expect.isTrue(!regexp.hasMatch(generated)); 83 Expect.isTrue(!regexp.hasMatch(generated));
82 84
83 regexp = const RegExp("return val"); 85 regexp = const RegExp("return val");
84 Expect.isTrue(regexp.hasMatch(generated)); 86 Expect.isTrue(regexp.hasMatch(generated));
85 // Check that a store just after the declaration of the local 87 // Check that a store just after the declaration of the local
86 // only generates one instruction. 88 // only generates one instruction.
87 regexp = const RegExp(@"var val = 42"); 89 regexp = const RegExp(@"var val = 42");
88 Expect.isTrue(regexp.hasMatch(generated)); 90 Expect.isTrue(regexp.hasMatch(generated));
89 91
90 generated = compile(TEST_FOUR, 'foo'); 92 generated = compile(TEST_FOUR, 'foo');
91 93
92 regexp = const RegExp("cond1 = cond1;"); 94 regexp = const RegExp("cond1 = cond1;");
93 Expect.isTrue(!regexp.hasMatch(generated)); 95 Expect.isTrue(!regexp.hasMatch(generated));
94 96
95 regexp = const RegExp("cond2 = cond2;"); 97 regexp = const RegExp("cond2 = cond2;");
96 Expect.isTrue(!regexp.hasMatch(generated)); 98 Expect.isTrue(!regexp.hasMatch(generated));
97 } 99 }
OLDNEW
« no previous file with comments | « no previous file | frog/tests/leg/type_inference_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698