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

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

Issue 1021813002: Redo "Use an explicit 'this' parameter instead of 'This' nodes." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 'dart:async'; 5 import 'dart:async';
6 import '../mock_compiler.dart'; 6 import '../mock_compiler.dart';
7 import 'sexpr_unstringifier.dart'; 7 import 'sexpr_unstringifier.dart';
8 import 'package:async_helper/async_helper.dart'; 8 import 'package:async_helper/async_helper.dart';
9 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
10 import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart'; 10 import 'package:compiler/src/cps_ir/cps_ir_nodes_sexpr.dart';
(...skipping 10 matching lines...) Expand all
21 // int j; 21 // int j;
22 // if (i == 1) { 22 // if (i == 1) {
23 // j = 2; 23 // j = 2;
24 // } else { 24 // } else {
25 // j = 3; 25 // j = 3;
26 // } 26 // }
27 // return j; 27 // return j;
28 // } 28 // }
29 29
30 String CP1_IN = """ 30 String CP1_IN = """
31 (FunctionDefinition main () return 31 (FunctionDefinition main () () return
32 (LetPrim (v0 (Constant (Int 1))) 32 (LetPrim (v0 (Constant (Int 1)))
33 (LetPrim (v1 (Constant (Int 1))) 33 (LetPrim (v1 (Constant (Int 1)))
34 (LetCont 34 (LetCont
35 ((k0 (v2) 35 ((k0 (v2)
36 (LetCont 36 (LetCont
37 ((k1 () 37 ((k1 ()
38 (LetPrim (v3 (Constant (Int 2))) 38 (LetPrim (v3 (Constant (Int 2)))
39 (InvokeContinuation return (v3)))) 39 (InvokeContinuation return (v3))))
40 (k2 () 40 (k2 ()
41 (LetPrim (v4 (Constant (Int 3))) 41 (LetPrim (v4 (Constant (Int 3)))
42 (InvokeContinuation return (v4))))) 42 (InvokeContinuation return (v4)))))
43 (Branch (IsTrue v2) k1 k2)))) 43 (Branch (IsTrue v2) k1 k2))))
44 (InvokeMethod v0 == (v1) k0))))) 44 (InvokeMethod v0 == (v1) k0)))))
45 """; 45 """;
46 String CP1_OUT = """ 46 String CP1_OUT = """
47 (FunctionDefinition main () return 47 (FunctionDefinition main () () return
48 (LetPrim (v0 (Constant (Int 1))) 48 (LetPrim (v0 (Constant (Int 1)))
49 (LetPrim (v1 (Constant (Int 1))) 49 (LetPrim (v1 (Constant (Int 1)))
50 (LetCont 50 (LetCont
51 ((k0 (v2) 51 ((k0 (v2)
52 (LetCont 52 (LetCont
53 ((k1 () 53 ((k1 ()
54 (LetPrim (v3 (Constant (Int 2))) 54 (LetPrim (v3 (Constant (Int 2)))
55 (InvokeContinuation return (v3)))) 55 (InvokeContinuation return (v3))))
56 (k2 () 56 (k2 ()
57 (LetPrim (v4 (Constant (Int 3))) 57 (LetPrim (v4 (Constant (Int 3)))
(...skipping 12 matching lines...) Expand all
70 // return i; 70 // return i;
71 // } 71 // }
72 // if (true && i == 1) { 72 // if (true && i == 1) {
73 // return i; 73 // return i;
74 // } 74 // }
75 // } 75 // }
76 // return 42; 76 // return 42;
77 // } 77 // }
78 78
79 String CP2_IN = """ 79 String CP2_IN = """
80 (FunctionDefinition main () return 80 (FunctionDefinition main () () return
81 (LetPrim (v0 (Constant (Int 1))) 81 (LetPrim (v0 (Constant (Int 1)))
82 (LetCont 82 (LetCont
83 ((rec k0 () 83 ((rec k0 ()
84 (LetCont 84 (LetCont
85 ((k1 () 85 ((k1 ()
86 (LetPrim (v1 (Constant (Int 42))) 86 (LetPrim (v1 (Constant (Int 42)))
87 (InvokeContinuation return (v1)))) 87 (InvokeContinuation return (v1))))
88 (k2 () 88 (k2 ()
89 (LetPrim (v2 (Constant (Bool false))) 89 (LetPrim (v2 (Constant (Bool false)))
90 (LetCont 90 (LetCont
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 (k17 () 134 (k17 ()
135 (LetPrim (v14 (Constant (Bool false))) 135 (LetPrim (v14 (Constant (Bool false)))
136 (InvokeContinuation k3 (v14))))) 136 (InvokeContinuation k3 (v14)))))
137 (Branch (IsTrue v12) k16 k17))))) 137 (Branch (IsTrue v12) k16 k17)))))
138 (Branch (IsTrue v2) k14 k15)))))) 138 (Branch (IsTrue v2) k14 k15))))))
139 (LetPrim (v15 (Constant (Bool true))) 139 (LetPrim (v15 (Constant (Bool true)))
140 (Branch (IsTrue v15) k2 k1))))) 140 (Branch (IsTrue v15) k2 k1)))))
141 (InvokeContinuation k0 ())))) 141 (InvokeContinuation k0 ()))))
142 """; 142 """;
143 String CP2_OUT = """ 143 String CP2_OUT = """
144 (FunctionDefinition main () return 144 (FunctionDefinition main () () return
145 (LetPrim (v0 (Constant (Int 1))) 145 (LetPrim (v0 (Constant (Int 1)))
146 (LetCont 146 (LetCont
147 ((rec k0 () 147 ((rec k0 ()
148 (LetCont 148 (LetCont
149 ((k1 () 149 ((k1 ()
150 (LetPrim (v1 (Constant (Int 42))) 150 (LetPrim (v1 (Constant (Int 42)))
151 (InvokeContinuation return (v1)))) 151 (InvokeContinuation return (v1))))
152 (k2 () 152 (k2 ()
153 (LetPrim (v2 (Constant (Bool false))) 153 (LetPrim (v2 (Constant (Bool false)))
154 (LetCont 154 (LetCont
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 // int main() { 211 // int main() {
212 // int i = 1; 212 // int i = 1;
213 // i = f(); 213 // i = f();
214 // if (i == 1) { 214 // if (i == 1) {
215 // return 42; 215 // return 42;
216 // } 216 // }
217 // return i; 217 // return i;
218 // } 218 // }
219 219
220 String CP3_IN = """ 220 String CP3_IN = """
221 (FunctionDefinition main () return 221 (FunctionDefinition main () () return
222 (LetPrim (v0 (Constant (Int 1))) 222 (LetPrim (v0 (Constant (Int 1)))
223 (LetCont 223 (LetCont
224 ((k0 (v1) 224 ((k0 (v1)
225 (LetPrim (v2 (Constant (Int 1))) 225 (LetPrim (v2 (Constant (Int 1)))
226 (LetCont 226 (LetCont
227 ((k1 (v3) 227 ((k1 (v3)
228 (LetCont 228 (LetCont
229 ((k2 () 229 ((k2 ()
230 (LetPrim (v4 (Constant (Int 42))) 230 (LetPrim (v4 (Constant (Int 42)))
231 (InvokeContinuation return (v4)))) 231 (InvokeContinuation return (v4))))
232 (k3 () 232 (k3 ()
233 (InvokeContinuation return (v1)))) 233 (InvokeContinuation return (v1))))
234 (Branch (IsTrue v3) k2 k3)))) 234 (Branch (IsTrue v3) k2 k3))))
235 (InvokeMethod v1 == (v2) k1))))) 235 (InvokeMethod v1 == (v2) k1)))))
236 (InvokeStatic f () k0)))) 236 (InvokeStatic f () k0))))
237 """; 237 """;
238 String CP3_OUT = CP3_IN; 238 String CP3_OUT = CP3_IN;
239 239
240 // Addition. 240 // Addition.
241 241
242 String CP4_IN = """ 242 String CP4_IN = """
243 (FunctionDefinition main () return 243 (FunctionDefinition main () () return
244 (LetPrim (v0 (Constant (Int 1))) 244 (LetPrim (v0 (Constant (Int 1)))
245 (LetPrim (v1 (Constant (Int 2))) 245 (LetPrim (v1 (Constant (Int 2)))
246 (LetCont 246 (LetCont
247 ((k0 (v2) 247 ((k0 (v2)
248 (InvokeContinuation return (v2)))) 248 (InvokeContinuation return (v2))))
249 (InvokeMethod v0 + (v1) k0))))) 249 (InvokeMethod v0 + (v1) k0)))))
250 """; 250 """;
251 String CP4_OUT = """ 251 String CP4_OUT = """
252 (FunctionDefinition main () return 252 (FunctionDefinition main () () return
253 (LetPrim (v0 (Constant (Int 1))) 253 (LetPrim (v0 (Constant (Int 1)))
254 (LetPrim (v1 (Constant (Int 2))) 254 (LetPrim (v1 (Constant (Int 2)))
255 (LetCont 255 (LetCont
256 ((k0 (v2) 256 ((k0 (v2)
257 (InvokeContinuation return (v2)))) 257 (InvokeContinuation return (v2))))
258 (LetPrim (v3 (Constant (Int 3))) 258 (LetPrim (v3 (Constant (Int 3)))
259 (InvokeContinuation k0 (v3))))))) 259 (InvokeContinuation k0 (v3)))))))
260 """; 260 """;
261 261
262 // Array access operator (no optimization). 262 // Array access operator (no optimization).
263 263
264 String CP5_IN = """ 264 String CP5_IN = """
265 (FunctionDefinition main () return 265 (FunctionDefinition main () () return
266 (LetPrim (v0 (Constant (Int 1))) 266 (LetPrim (v0 (Constant (Int 1)))
267 (LetPrim (v1 (Constant (Int 2))) 267 (LetPrim (v1 (Constant (Int 2)))
268 (LetCont 268 (LetCont
269 ((k0 (v2) 269 ((k0 (v2)
270 (InvokeContinuation return (v2)))) 270 (InvokeContinuation return (v2))))
271 (InvokeMethod v0 [] (v1) k0))))) 271 (InvokeMethod v0 [] (v1) k0)))))
272 """; 272 """;
273 String CP5_OUT = CP5_IN; 273 String CP5_OUT = CP5_IN;
274 274
275 // Division by 0. 275 // Division by 0.
276 276
277 String CP6_IN = """ 277 String CP6_IN = """
278 (FunctionDefinition main () return 278 (FunctionDefinition main () () return
279 (LetPrim (v0 (Constant (Int 1))) 279 (LetPrim (v0 (Constant (Int 1)))
280 (LetPrim (v1 (Constant (Int 0))) 280 (LetPrim (v1 (Constant (Int 0)))
281 (LetCont 281 (LetCont
282 ((k0 (v2) 282 ((k0 (v2)
283 (InvokeContinuation return (v2)))) 283 (InvokeContinuation return (v2))))
284 (InvokeMethod v0 / (v1) k0))))) 284 (InvokeMethod v0 / (v1) k0)))))
285 """; 285 """;
286 String CP6_OUT = """ 286 String CP6_OUT = """
287 (FunctionDefinition main () return 287 (FunctionDefinition main () () return
288 (LetPrim (v0 (Constant (Int 1))) 288 (LetPrim (v0 (Constant (Int 1)))
289 (LetPrim (v1 (Constant (Int 0))) 289 (LetPrim (v1 (Constant (Int 0)))
290 (LetCont 290 (LetCont
291 ((k0 (v2) 291 ((k0 (v2)
292 (InvokeContinuation return (v2)))) 292 (InvokeContinuation return (v2))))
293 (LetPrim (v3 (Constant (Double Infinity))) 293 (LetPrim (v3 (Constant (Double Infinity)))
294 (InvokeContinuation k0 (v3))))))) 294 (InvokeContinuation k0 (v3)))))))
295 """; 295 """;
296 296
297 // Concatenate strings. 297 // Concatenate strings.
298 298
299 String CP7_IN = """ 299 String CP7_IN = """
300 (FunctionDefinition main () return 300 (FunctionDefinition main () () return
301 (LetPrim (v0 (Constant (String "b"))) 301 (LetPrim (v0 (Constant (String "b")))
302 (LetPrim (v1 (Constant (String "d"))) 302 (LetPrim (v1 (Constant (String "d")))
303 (LetPrim (v2 (Constant (String "a"))) 303 (LetPrim (v2 (Constant (String "a")))
304 (LetPrim (v3 (Constant (String "c"))) 304 (LetPrim (v3 (Constant (String "c")))
305 (LetPrim (v4 (Constant (String ""))) 305 (LetPrim (v4 (Constant (String "")))
306 (LetCont 306 (LetCont
307 ((k0 (v5) 307 ((k0 (v5)
308 (LetCont 308 (LetCont
309 ((k1 (v6) 309 ((k1 (v6)
310 (InvokeContinuation return (v6)))) 310 (InvokeContinuation return (v6))))
311 (InvokeMethod v5 length () k1)))) 311 (InvokeMethod v5 length () k1))))
312 (ConcatenateStrings (v2 v0 v3 v1 v4) k0)))))))) 312 (ConcatenateStrings (v2 v0 v3 v1 v4) k0))))))))
313 """; 313 """;
314 String CP7_OUT = """ 314 String CP7_OUT = """
315 (FunctionDefinition main () return 315 (FunctionDefinition main () () return
316 (LetPrim (v0 (Constant (String "b"))) 316 (LetPrim (v0 (Constant (String "b")))
317 (LetPrim (v1 (Constant (String "d"))) 317 (LetPrim (v1 (Constant (String "d")))
318 (LetPrim (v2 (Constant (String "a"))) 318 (LetPrim (v2 (Constant (String "a")))
319 (LetPrim (v3 (Constant (String "c"))) 319 (LetPrim (v3 (Constant (String "c")))
320 (LetPrim (v4 (Constant (String ""))) 320 (LetPrim (v4 (Constant (String "")))
321 (LetCont 321 (LetCont
322 ((k0 (v5) 322 ((k0 (v5)
323 (LetCont 323 (LetCont
324 ((k1 (v6) 324 ((k1 (v6)
325 (InvokeContinuation return (v6)))) 325 (InvokeContinuation return (v6))))
326 (InvokeMethod v5 length () k1)))) 326 (InvokeMethod v5 length () k1))))
327 (LetPrim (v7 (Constant (String "abcd"))) 327 (LetPrim (v7 (Constant (String "abcd")))
328 (InvokeContinuation k0 (v7)))))))))) 328 (InvokeContinuation k0 (v7))))))))))
329 """; 329 """;
330 330
331 // TODO(jgruber): We can't test is-check optimization because the unstringifier 331 // TODO(jgruber): We can't test is-check optimization because the unstringifier
332 // does not recreate accurate types for the TypeOperator node. 332 // does not recreate accurate types for the TypeOperator node.
333 333
334 // Simple branch removal. 334 // Simple branch removal.
335 335
336 String CP8_IN = """ 336 String CP8_IN = """
337 (FunctionDefinition main () return 337 (FunctionDefinition main () () return
338 (LetPrim (v0 (Constant (Int 1))) 338 (LetPrim (v0 (Constant (Int 1)))
339 (LetPrim (v1 (Constant (Int 1))) 339 (LetPrim (v1 (Constant (Int 1)))
340 (LetCont 340 (LetCont
341 ((k0 (v2) 341 ((k0 (v2)
342 (LetCont 342 (LetCont
343 ((k1 () 343 ((k1 ()
344 (LetPrim (v3 (Constant (Int 42))) 344 (LetPrim (v3 (Constant (Int 42)))
345 (InvokeContinuation return (v3)))) 345 (InvokeContinuation return (v3))))
346 (k2 () 346 (k2 ()
347 (InvokeContinuation return (v0)))) 347 (InvokeContinuation return (v0))))
348 (Branch (IsTrue v2) k1 k2)))) 348 (Branch (IsTrue v2) k1 k2))))
349 (InvokeMethod v0 == (v1) k0))))) 349 (InvokeMethod v0 == (v1) k0)))))
350 """; 350 """;
351 String CP8_OUT = """ 351 String CP8_OUT = """
352 (FunctionDefinition main () return 352 (FunctionDefinition main () () return
353 (LetPrim (v0 (Constant (Int 1))) 353 (LetPrim (v0 (Constant (Int 1)))
354 (LetPrim (v1 (Constant (Int 1))) 354 (LetPrim (v1 (Constant (Int 1)))
355 (LetCont 355 (LetCont
356 ((k0 (v2) 356 ((k0 (v2)
357 (LetCont 357 (LetCont
358 ((k1 () 358 ((k1 ()
359 (LetPrim (v3 (Constant (Int 42))) 359 (LetPrim (v3 (Constant (Int 42)))
360 (InvokeContinuation return (v3)))) 360 (InvokeContinuation return (v3))))
361 (k2 () 361 (k2 ()
362 (InvokeContinuation return (v0)))) 362 (InvokeContinuation return (v0))))
363 (InvokeContinuation k1 ())))) 363 (InvokeContinuation k1 ()))))
364 (LetPrim (v4 (Constant (Bool true))) 364 (LetPrim (v4 (Constant (Bool true)))
365 (InvokeContinuation k0 (v4))))))) 365 (InvokeContinuation k0 (v4)))))))
366 """; 366 """;
367 367
368 // While loop. 368 // While loop.
369 369
370 String CP9_IN = """ 370 String CP9_IN = """
371 (FunctionDefinition main () return 371 (FunctionDefinition main () () return
372 (LetPrim (v0 (Constant (Int 1))) 372 (LetPrim (v0 (Constant (Int 1)))
373 (LetCont 373 (LetCont
374 ((rec k0 (v1) 374 ((rec k0 (v1)
375 (LetCont 375 (LetCont
376 ((k1 () 376 ((k1 ()
377 (InvokeContinuation return (v1))) 377 (InvokeContinuation return (v1)))
378 (k2 () 378 (k2 ()
379 (LetPrim (v2 (Constant (Int 1))) 379 (LetPrim (v2 (Constant (Int 1)))
380 (LetCont 380 (LetCont
381 ((k3 (v3) 381 ((k3 (v3)
(...skipping 17 matching lines...) Expand all
399 (k9 () 399 (k9 ()
400 (LetPrim (v9 (Constant (Bool true))) 400 (LetPrim (v9 (Constant (Bool true)))
401 (InvokeContinuation k4 (v9))))) 401 (InvokeContinuation k4 (v9)))))
402 (Branch (IsTrue v3) k8 k9))))) 402 (Branch (IsTrue v3) k8 k9)))))
403 (InvokeMethod v1 == (v2) k3))))) 403 (InvokeMethod v1 == (v2) k3)))))
404 (LetPrim (v10 (Constant (Bool true))) 404 (LetPrim (v10 (Constant (Bool true)))
405 (Branch (IsTrue v10) k2 k1))))) 405 (Branch (IsTrue v10) k2 k1)))))
406 (InvokeContinuation k0 (v0))))) 406 (InvokeContinuation k0 (v0)))))
407 """; 407 """;
408 String CP9_OUT = """ 408 String CP9_OUT = """
409 (FunctionDefinition main () return 409 (FunctionDefinition main () () return
410 (LetPrim (v0 (Constant (Int 1))) 410 (LetPrim (v0 (Constant (Int 1)))
411 (LetCont 411 (LetCont
412 ((rec k0 (v1) 412 ((rec k0 (v1)
413 (LetCont 413 (LetCont
414 ((k1 () 414 ((k1 ()
415 (InvokeContinuation return (v1))) 415 (InvokeContinuation return (v1)))
416 (k2 () 416 (k2 ()
417 (LetPrim (v2 (Constant (Int 1))) 417 (LetPrim (v2 (Constant (Int 1)))
418 (LetCont 418 (LetCont
419 ((k3 (v3) 419 ((k3 (v3)
(...skipping 26 matching lines...) Expand all
446 446
447 // While loop, from: 447 // While loop, from:
448 // 448 //
449 // int main() { 449 // int main() {
450 // for (int i = 0; i < 2; i++) { 450 // for (int i = 0; i < 2; i++) {
451 // print(42 + i); 451 // print(42 + i);
452 // } 452 // }
453 // } 453 // }
454 454
455 String CP10_IN = """ 455 String CP10_IN = """
456 (FunctionDefinition main () return 456 (FunctionDefinition main () () return
457 (LetPrim (v0 (Constant (Int 0))) 457 (LetPrim (v0 (Constant (Int 0)))
458 (LetCont 458 (LetCont
459 ((rec k0 (v1) 459 ((rec k0 (v1)
460 (LetCont 460 (LetCont
461 ((k1 () 461 ((k1 ()
462 (LetPrim (v2 (Constant (Null))) 462 (LetPrim (v2 (Constant (Null)))
463 (InvokeContinuation return (v2)))) 463 (InvokeContinuation return (v2))))
464 (k2 () 464 (k2 ()
465 (LetPrim (v3 (Constant (Int 42))) 465 (LetPrim (v3 (Constant (Int 42)))
466 (LetCont 466 (LetCont
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 asyncTest(() => testConstantPropagator(CP2_IN, CP2_OUT)); 519 asyncTest(() => testConstantPropagator(CP2_IN, CP2_OUT));
520 asyncTest(() => testConstantPropagator(CP3_IN, CP3_OUT)); 520 asyncTest(() => testConstantPropagator(CP3_IN, CP3_OUT));
521 asyncTest(() => testConstantPropagator(CP4_IN, CP4_OUT)); 521 asyncTest(() => testConstantPropagator(CP4_IN, CP4_OUT));
522 asyncTest(() => testConstantPropagator(CP5_IN, CP5_OUT)); 522 asyncTest(() => testConstantPropagator(CP5_IN, CP5_OUT));
523 asyncTest(() => testConstantPropagator(CP6_IN, CP6_OUT)); 523 asyncTest(() => testConstantPropagator(CP6_IN, CP6_OUT));
524 asyncTest(() => testConstantPropagator(CP7_IN, CP7_OUT)); 524 asyncTest(() => testConstantPropagator(CP7_IN, CP7_OUT));
525 asyncTest(() => testConstantPropagator(CP8_IN, CP8_OUT)); 525 asyncTest(() => testConstantPropagator(CP8_IN, CP8_OUT));
526 asyncTest(() => testConstantPropagator(CP9_IN, CP9_OUT)); 526 asyncTest(() => testConstantPropagator(CP9_IN, CP9_OUT));
527 asyncTest(() => testConstantPropagator(CP10_IN, CP10_OUT)); 527 asyncTest(() => testConstantPropagator(CP10_IN, CP10_OUT));
528 } 528 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/tree_ir/tree_ir_integrity.dart ('k') | tests/compiler/dart2js/backend_dart/opt_redundant_phi_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698