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

Side by Side Diff: frog/leg/ssa/tracer.dart

Issue 9718034: Continue for simple loops (while/for). (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 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) 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 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('../leg.dart'); 9 #import('../leg.dart');
10 10
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 String visitBreak(HBreak node) { 212 String visitBreak(HBreak node) {
213 HBasicBlock target = currentBlock.successors[0]; 213 HBasicBlock target = currentBlock.successors[0];
214 if (node.label !== null) { 214 if (node.label !== null) {
215 return "Break ${node.label.labelName}: (B${target.id})"; 215 return "Break ${node.label.labelName}: (B${target.id})";
216 } 216 }
217 return "Break: (B${target.id})"; 217 return "Break: (B${target.id})";
218 } 218 }
219 219
220 String visitConstant(HConstant constant) => "Constant ${constant.constant}"; 220 String visitConstant(HConstant constant) => "Constant ${constant.constant}";
221 221
222 String visitContinue(HContinue node) {
223 HBasicBlock target = currentBlock.successors[0];
224 if (node.label !== null) {
225 return "Continue ${node.label.labelName}: (B${target.id})";
226 }
227 return "Continue: (B${target.id})";
228 }
229
222 String visitDivide(HDivide node) => visitInvokeStatic(node); 230 String visitDivide(HDivide node) => visitInvokeStatic(node);
223 231
224 String visitEquals(HEquals node) => visitInvokeStatic(node); 232 String visitEquals(HEquals node) => visitInvokeStatic(node);
225 233
226 String visitExit(HExit node) => "exit"; 234 String visitExit(HExit node) => "exit";
227 235
228 String visitFieldGet(HFieldGet node) { 236 String visitFieldGet(HFieldGet node) {
229 return 'get ${node.element.name.slowToString()}'; 237 return 'get ${node.element.name.slowToString()}';
230 } 238 }
231 239
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 default: unreachable(); 451 default: unreachable();
444 } 452 }
445 return "TypeGuard: ${temporaryId(node.inputs[0])} is $type"; 453 return "TypeGuard: ${temporaryId(node.inputs[0])} is $type";
446 } 454 }
447 455
448 String visitIs(HIs node) { 456 String visitIs(HIs node) {
449 String type = node.typeExpression.toString(); 457 String type = node.typeExpression.toString();
450 return "TypeTest: ${temporaryId(node.expression)} is $type"; 458 return "TypeTest: ${temporaryId(node.expression)} is $type";
451 } 459 }
452 } 460 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698