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

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

Issue 44143002: Fix issue 12336: there was a bug when updating phis at exit of a block with a HTypeKnown instructio… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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:async' show EventSink; 7 import 'dart:async' show EventSink;
8 8
9 import 'ssa.dart'; 9 import 'ssa.dart';
10 import '../js_backend/js_backend.dart'; 10 import '../js_backend/js_backend.dart';
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 return "Continue ${node.label.labelName}: (B${target.id})"; 256 return "Continue ${node.label.labelName}: (B${target.id})";
257 } 257 }
258 return "Continue: (B${target.id})"; 258 return "Continue: (B${target.id})";
259 } 259 }
260 260
261 String visitDivide(HDivide node) => handleInvokeBinary(node, '/'); 261 String visitDivide(HDivide node) => handleInvokeBinary(node, '/');
262 262
263 String visitExit(HExit node) => "exit"; 263 String visitExit(HExit node) => "exit";
264 264
265 String visitFieldGet(HFieldGet node) { 265 String visitFieldGet(HFieldGet node) {
266 if (node.isNullCheck) {
267 return 'null check on ${temporaryId(node.receiver)}';
268 }
266 String fieldName = node.element.name; 269 String fieldName = node.element.name;
267 return 'field get ${temporaryId(node.receiver)}.$fieldName'; 270 return 'field get ${temporaryId(node.receiver)}.$fieldName';
268 } 271 }
269 272
270 String visitFieldSet(HFieldSet node) { 273 String visitFieldSet(HFieldSet node) {
271 String valueId = temporaryId(node.value); 274 String valueId = temporaryId(node.value);
272 String fieldName = node.element.name; 275 String fieldName = node.element.name;
273 return 'field set ${temporaryId(node.receiver)}.$fieldName to $valueId'; 276 return 'field set ${temporaryId(node.receiver)}.$fieldName to $valueId';
274 } 277 }
275 278
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 515
513 String visitTypeKnown(HTypeKnown node) { 516 String visitTypeKnown(HTypeKnown node) {
514 assert(node.inputs.length == 1); 517 assert(node.inputs.length == 1);
515 return "TypeKnown: ${temporaryId(node.checkedInput)} is ${node.knownType}"; 518 return "TypeKnown: ${temporaryId(node.checkedInput)} is ${node.knownType}";
516 } 519 }
517 520
518 String visitRangeConversion(HRangeConversion node) { 521 String visitRangeConversion(HRangeConversion node) {
519 return "RangeConversion: ${node.checkedInput}"; 522 return "RangeConversion: ${node.checkedInput}";
520 } 523 }
521 } 524 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698