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

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

Issue 16004005: Fix generation of a bailout method when a BailoutTarget was in the middle of a loop/labeled block. … (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 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) 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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 360
361 String visitInvokeSuper(HInvokeSuper invoke) { 361 String visitInvokeSuper(HInvokeSuper invoke) {
362 String target = invoke.element.name.slowToString(); 362 String target = invoke.element.name.slowToString();
363 int offset = HInvoke.ARGUMENTS_OFFSET + 1; 363 int offset = HInvoke.ARGUMENTS_OFFSET + 1;
364 List arguments = invoke.inputs.sublist(offset); 364 List arguments = invoke.inputs.sublist(offset);
365 return visitGenericInvoke("Invoke super", target, arguments); 365 return visitGenericInvoke("Invoke super", target, arguments);
366 } 366 }
367 367
368 String visitInvokeConstructorBody(HInvokeConstructorBody invoke) { 368 String visitInvokeConstructorBody(HInvokeConstructorBody invoke) {
369 String target = invoke.element.name.slowToString(); 369 String target = invoke.element.name.slowToString();
370 int offset = HInvoke.ARGUMENTS_OFFSET + 1; 370 return visitGenericInvoke("Invoke constructor body", target, invoke.inputs);
371 List arguments = invoke.inputs.sublist(offset);
372 return visitGenericInvoke("Invoke constructor body", target, arguments);
373 } 371 }
374 372
375 String visitForeign(HForeign foreign) { 373 String visitForeign(HForeign foreign) {
376 return visitGenericInvoke("Foreign", "${foreign.codeAst}", foreign.inputs); 374 return visitGenericInvoke("Foreign", "${foreign.codeAst}", foreign.inputs);
377 } 375 }
378 376
379 String visitForeignNew(HForeignNew node) { 377 String visitForeignNew(HForeignNew node) {
380 return visitGenericInvoke("New", 378 return visitGenericInvoke("New",
381 "${node.element.name.slowToString()}", 379 "${node.element.name.slowToString()}",
382 node.inputs); 380 node.inputs);
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 return "TypeGuard($on): $guardedId is $type bailout: $bailoutId " 544 return "TypeGuard($on): $guardedId is $type bailout: $bailoutId "
547 "env: $envBuffer"; 545 "env: $envBuffer";
548 } 546 }
549 547
550 String visitIs(HIs node) { 548 String visitIs(HIs node) {
551 String type = node.typeExpression.toString(); 549 String type = node.typeExpression.toString();
552 return "TypeTest: ${temporaryId(node.expression)} is $type"; 550 return "TypeTest: ${temporaryId(node.expression)} is $type";
553 } 551 }
554 552
555 String visitTypeConversion(HTypeConversion node) { 553 String visitTypeConversion(HTypeConversion node) {
554 assert(node.inputs.length <= 2);
555 String otherInput = (node.inputs.length == 2)
556 ? temporaryId(node.inputs[1])
557 : '';
556 return "TypeConversion: ${temporaryId(node.checkedInput)} to " 558 return "TypeConversion: ${temporaryId(node.checkedInput)} to "
557 "${node.instructionType}"; 559 "${node.instructionType} $otherInput";
558 } 560 }
559 561
560 String visitRangeConversion(HRangeConversion node) { 562 String visitRangeConversion(HRangeConversion node) {
561 return "RangeConversion: ${node.checkedInput}"; 563 return "RangeConversion: ${node.checkedInput}";
562 } 564 }
563 } 565 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698