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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/ssa/tracer.dart

Issue 11366085: Fix control flow graph in the presence of aborting instructions in a try/catch/finally. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 1 month 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) 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 library tracer; 5 library tracer;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 import 'ssa.dart'; 8 import 'ssa.dart';
9 import '../js_backend/js_backend.dart'; 9 import '../js_backend/js_backend.dart';
10 import '../dart2jslib.dart'; 10 import '../dart2jslib.dart';
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 } 451 }
452 452
453 String visitThis(HThis node) => "this"; 453 String visitThis(HThis node) => "this";
454 454
455 String visitThrow(HThrow node) => "Throw ${temporaryId(node.inputs[0])}"; 455 String visitThrow(HThrow node) => "Throw ${temporaryId(node.inputs[0])}";
456 456
457 String visitTruncatingDivide(HTruncatingDivide node) { 457 String visitTruncatingDivide(HTruncatingDivide node) {
458 return visitInvokeStatic(node); 458 return visitInvokeStatic(node);
459 } 459 }
460 460
461 String visitExitTry(HExitTry node) {
462 return "Exit try";
463 }
464
461 String visitTry(HTry node) { 465 String visitTry(HTry node) {
462 List<HBasicBlock> successors = currentBlock.successors; 466 List<HBasicBlock> successors = currentBlock.successors;
463 String tryBlock = 'B${successors[0].id}'; 467 String tryBlock = 'B${successors[0].id}';
464 String catchBlock = 'none'; 468 String catchBlock = 'none';
465 if (node.catchBlock != null) { 469 if (node.catchBlock != null) {
466 catchBlock = 'B${successors[1].id}'; 470 catchBlock = 'B${successors[1].id}';
467 } 471 }
468 472
469 String finallyBlock = 'none'; 473 String finallyBlock = 'none';
470 if (node.finallyBlock != null) { 474 if (node.finallyBlock != null) {
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 } 528 }
525 529
526 String visitTypeConversion(HTypeConversion node) { 530 String visitTypeConversion(HTypeConversion node) {
527 return "TypeConversion: ${temporaryId(node.checkedInput)} to ${node.type}"; 531 return "TypeConversion: ${temporaryId(node.checkedInput)} to ${node.type}";
528 } 532 }
529 533
530 String visitRangeConversion(HRangeConversion node) { 534 String visitRangeConversion(HRangeConversion node) {
531 return "RangeConversion: ${node.checkedInput}"; 535 return "RangeConversion: ${node.checkedInput}";
532 } 536 }
533 } 537 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698