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

Side by Side Diff: tests/compiler/dart2js/backend_dart/opt_redundant_phi_test.dart

Issue 864293004: Add a shrinking reduction for dead continuation parameters. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Incorporated review comments. Created 5 years, 11 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 import 'sexpr_unstringifier.dart'; 5 import 'sexpr_unstringifier.dart';
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 import 'package:compiler/src/cps_ir/cps_ir_nodes.dart'; 7 import 'package:compiler/src/cps_ir/cps_ir_nodes.dart';
8 import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart'; 8 import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart';
9 import 'package:compiler/src/cps_ir/optimizers.dart'; 9 import 'package:compiler/src/cps_ir/optimizers.dart';
10 10
(...skipping 18 matching lines...) Expand all
29 (LetPrim (v4 (Constant (Null))) 29 (LetPrim (v4 (Constant (Null)))
30 (InvokeContinuation return (v4)))) 30 (InvokeContinuation return (v4))))
31 (k2 () 31 (k2 ()
32 (LetCont 32 (LetCont
33 ((k3 (v5) 33 ((k3 (v5)
34 (LetCont 34 (LetCont
35 ((k4 (v6) 35 ((k4 (v6)
36 (LetPrim (v7 (Constant (Int 1))) 36 (LetPrim (v7 (Constant (Int 1)))
37 (LetCont 37 (LetCont
38 ((k5 (v8) 38 ((k5 (v8)
39 (InvokeContinuation* k0 (v2 v8)))) 39 (InvokeContinuation rec k0 (v2 v8))))
40 (InvokeMethod v3 + (v7) k5))))) 40 (InvokeMethod v3 + (v7) k5)))))
41 (InvokeStatic print (v5) k4)))) 41 (InvokeStatic print (v5) k4))))
42 (InvokeMethod v2 toString () k3)))) 42 (InvokeMethod v2 toString () k3))))
43 (LetPrim (v9 (Constant (Int 2))) 43 (LetPrim (v9 (Constant (Int 2)))
44 (LetCont 44 (LetCont
45 ((k6 (v10) 45 ((k6 (v10)
46 (Branch (IsTrue v10) k2 k1))) 46 (Branch (IsTrue v10) k2 k1)))
47 (InvokeMethod v3 < (v9) k6)))))) 47 (InvokeMethod v3 < (v9) k6))))))
48 (InvokeContinuation k0 (v0 v1)))))) 48 (InvokeContinuation k0 (v0 v1))))))
49 """; 49 """;
50 50
51 String READ_IN_LOOP_OUT = """ 51 String READ_IN_LOOP_OUT = """
52 (FunctionDefinition main () return () 52 (FunctionDefinition main () return ()
53 (LetPrim (v0 (Constant (Int 42))) 53 (LetPrim (v0 (Constant (Int 42)))
54 (LetPrim (v1 (Constant (Int 0))) 54 (LetPrim (v1 (Constant (Int 0)))
55 (LetCont 55 (LetCont
56 ((rec k0 (v2) 56 ((rec k0 (v2)
57 (LetCont 57 (LetCont
58 ((k1 () 58 ((k1 ()
59 (LetPrim (v3 (Constant (Null))) 59 (LetPrim (v3 (Constant (Null)))
60 (InvokeContinuation return (v3)))) 60 (InvokeContinuation return (v3))))
61 (k2 () 61 (k2 ()
62 (LetCont 62 (LetCont
63 ((k3 (v4) 63 ((k3 (v4)
64 (LetCont 64 (LetCont
65 ((k4 (v5) 65 ((k4 (v5)
66 (LetPrim (v6 (Constant (Int 1))) 66 (LetPrim (v6 (Constant (Int 1)))
67 (LetCont 67 (LetCont
68 ((k5 (v7) 68 ((k5 (v7)
69 (InvokeContinuation* k0 (v7)))) 69 (InvokeContinuation rec k0 (v7))))
70 (InvokeMethod v2 + (v6) k5))))) 70 (InvokeMethod v2 + (v6) k5)))))
71 (InvokeStatic print (v4) k4)))) 71 (InvokeStatic print (v4) k4))))
72 (InvokeMethod v0 toString () k3)))) 72 (InvokeMethod v0 toString () k3))))
73 (LetPrim (v8 (Constant (Int 2))) 73 (LetPrim (v8 (Constant (Int 2)))
74 (LetCont 74 (LetCont
75 ((k6 (v9) 75 ((k6 (v9)
76 (Branch (IsTrue v9) k2 k1))) 76 (Branch (IsTrue v9) k2 k1)))
77 (InvokeMethod v2 < (v8) k6)))))) 77 (InvokeMethod v2 < (v8) k6))))))
78 (InvokeContinuation k0 (v1)))))) 78 (InvokeContinuation k0 (v1))))))
79 """; 79 """;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 (InvokeMethod v2 toString () k2))) 111 (InvokeMethod v2 toString () k2)))
112 (k4 () 112 (k4 ()
113 (LetPrim (v7 (Constant (Int 0))) 113 (LetPrim (v7 (Constant (Int 0)))
114 (LetCont 114 (LetCont
115 ((rec k5 (v8 v9 v10) 115 ((rec k5 (v8 v9 v10)
116 (LetCont 116 (LetCont
117 ((k6 () 117 ((k6 ()
118 (LetPrim (v11 (Constant (Int 1))) 118 (LetPrim (v11 (Constant (Int 1)))
119 (LetCont 119 (LetCont
120 ((k7 (v12) 120 ((k7 (v12)
121 (InvokeContinuation* k0 (v8 v12)))) 121 (InvokeContinuation rec k0 (v8 v12) )))
122 (InvokeMethod v9 + (v11) k7)))) 122 (InvokeMethod v9 + (v11) k7))))
123 (k8 () 123 (k8 ()
124 (LetCont 124 (LetCont
125 ((k9 (v13) 125 ((k9 (v13)
126 (LetCont 126 (LetCont
127 ((k10 (v14) 127 ((k10 (v14)
128 (LetPrim (v15 (Constant (Int 1 ))) 128 (LetPrim (v15 (Constant (Int 1 )))
129 (LetCont 129 (LetCont
130 ((k11 (v16) 130 ((k11 (v16)
131 (InvokeContinuation* k5 (v8 v9 v16)))) 131 (InvokeContinuation r ec k5 (v8 v9 v16))))
132 (InvokeMethod v10 + (v15) k11))))) 132 (InvokeMethod v10 + (v15) k11)))))
133 (InvokeStatic print (v13) k10)))) 133 (InvokeStatic print (v13) k10))))
134 (InvokeMethod v9 toString () k9)))) 134 (InvokeMethod v9 toString () k9))))
135 (LetPrim (v17 (Constant (Int 2))) 135 (LetPrim (v17 (Constant (Int 2)))
136 (LetCont 136 (LetCont
137 ((k12 (v18) 137 ((k12 (v18)
138 (Branch (IsTrue v18) k8 k6))) 138 (Branch (IsTrue v18) k8 k6)))
139 (InvokeMethod v10 < (v17) k12)))))) 139 (InvokeMethod v10 < (v17) k12))))))
140 (InvokeContinuation k5 (v2 v3 v7)))))) 140 (InvokeContinuation k5 (v2 v3 v7))))))
141 (LetPrim (v19 (Constant (Int 2))) 141 (LetPrim (v19 (Constant (Int 2)))
(...skipping 22 matching lines...) Expand all
164 (InvokeMethod v0 toString () k2))) 164 (InvokeMethod v0 toString () k2)))
165 (k4 () 165 (k4 ()
166 (LetPrim (v6 (Constant (Int 0))) 166 (LetPrim (v6 (Constant (Int 0)))
167 (LetCont 167 (LetCont
168 ((rec k5 (v7) 168 ((rec k5 (v7)
169 (LetCont 169 (LetCont
170 ((k6 () 170 ((k6 ()
171 (LetPrim (v8 (Constant (Int 1))) 171 (LetPrim (v8 (Constant (Int 1)))
172 (LetCont 172 (LetCont
173 ((k7 (v9) 173 ((k7 (v9)
174 (InvokeContinuation* k0 (v9)))) 174 (InvokeContinuation rec k0 (v9))))
175 (InvokeMethod v2 + (v8) k7)))) 175 (InvokeMethod v2 + (v8) k7))))
176 (k8 () 176 (k8 ()
177 (LetCont 177 (LetCont
178 ((k9 (v10) 178 ((k9 (v10)
179 (LetCont 179 (LetCont
180 ((k10 (v11) 180 ((k10 (v11)
181 (LetPrim (v12 (Constant (Int 1 ))) 181 (LetPrim (v12 (Constant (Int 1 )))
182 (LetCont 182 (LetCont
183 ((k11 (v13) 183 ((k11 (v13)
184 (InvokeContinuation* k5 (v13)))) 184 (InvokeContinuation r ec k5 (v13))))
185 (InvokeMethod v7 + (v12) k 11))))) 185 (InvokeMethod v7 + (v12) k 11)))))
186 (InvokeStatic print (v10) k10)))) 186 (InvokeStatic print (v10) k10))))
187 (InvokeMethod v2 toString () k9)))) 187 (InvokeMethod v2 toString () k9))))
188 (LetPrim (v14 (Constant (Int 2))) 188 (LetPrim (v14 (Constant (Int 2)))
189 (LetCont 189 (LetCont
190 ((k12 (v15) 190 ((k12 (v15)
191 (Branch (IsTrue v15) k8 k6))) 191 (Branch (IsTrue v15) k8 k6)))
192 (InvokeMethod v7 < (v14) k12)))))) 192 (InvokeMethod v7 < (v14) k12))))))
193 (InvokeContinuation k5 (v6)))))) 193 (InvokeContinuation k5 (v6))))))
194 (LetPrim (v16 (Constant (Int 2))) 194 (LetPrim (v16 (Constant (Int 2)))
(...skipping 24 matching lines...) Expand all
219 (LetPrim (v2 (Constant (Null))) 219 (LetPrim (v2 (Constant (Null)))
220 (InvokeContinuation return (v2)))) 220 (InvokeContinuation return (v2))))
221 (k2 () 221 (k2 ()
222 (LetCont 222 (LetCont
223 ((k3 (v3) 223 ((k3 (v3)
224 (LetCont 224 (LetCont
225 ((k4 (v4) 225 ((k4 (v4)
226 (LetPrim (v5 (Constant (Int 1))) 226 (LetPrim (v5 (Constant (Int 1)))
227 (LetCont 227 (LetCont
228 ((k5 (v6) 228 ((k5 (v6)
229 (InvokeContinuation* k0 (v6)))) 229 (InvokeContinuation rec k0 (v6))))
230 (InvokeMethod v1 + (v5) k5))))) 230 (InvokeMethod v1 + (v5) k5)))))
231 (InvokeStatic print (v3) k4)))) 231 (InvokeStatic print (v3) k4))))
232 (InvokeMethod v1 toString () k3)))) 232 (InvokeMethod v1 toString () k3))))
233 (LetPrim (v7 (Constant (Int 2))) 233 (LetPrim (v7 (Constant (Int 2)))
234 (LetCont 234 (LetCont
235 ((k6 (v8) 235 ((k6 (v8)
236 (Branch (IsTrue v8) k2 k1))) 236 (Branch (IsTrue v8) k2 k1)))
237 (InvokeMethod v1 < (v7) k6)))))) 237 (InvokeMethod v1 < (v7) k6))))))
238 (InvokeContinuation k0 (v0))))) 238 (InvokeContinuation k0 (v0)))))
239 """; 239 """;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 Expect.equals(expected, actual, "Actual:\n$actual"); 300 Expect.equals(expected, actual, "Actual:\n$actual");
301 } 301 }
302 302
303 void main() { 303 void main() {
304 testRedundantPhi(READ_IN_LOOP_IN, READ_IN_LOOP_OUT); 304 testRedundantPhi(READ_IN_LOOP_IN, READ_IN_LOOP_OUT);
305 testRedundantPhi(INNER_LOOP_IN, INNER_LOOP_OUT); 305 testRedundantPhi(INNER_LOOP_IN, INNER_LOOP_OUT);
306 testRedundantPhi(BASIC_LOOP_IN, BASIC_LOOP_OUT); 306 testRedundantPhi(BASIC_LOOP_IN, BASIC_LOOP_OUT);
307 testRedundantPhi(SCOPING_IN, SCOPING_OUT); 307 testRedundantPhi(SCOPING_IN, SCOPING_OUT);
308 testRedundantPhi(NEVER_INVOKED_IN, NEVER_INVOKED_OUT); 308 testRedundantPhi(NEVER_INVOKED_IN, NEVER_INVOKED_OUT);
309 } 309 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698