OLD | NEW |
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 ssa.tracer; | 5 library ssa.tracer; |
6 | 6 |
7 import '../../compiler_new.dart' show OutputSink; | 7 import '../../compiler_new.dart' show OutputSink; |
8 import '../diagnostics/invariant.dart' show DEBUG_MODE; | 8 import '../diagnostics/invariant.dart' show DEBUG_MODE; |
9 import '../js_backend/namer.dart' show Namer; | 9 import '../js_backend/namer.dart' show Namer; |
10 import '../tracer.dart'; | 10 import '../tracer.dart'; |
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 } | 486 } |
487 | 487 |
488 String visitIsViaInterceptor(HIsViaInterceptor node) { | 488 String visitIsViaInterceptor(HIsViaInterceptor node) { |
489 String type = node.typeExpression.toString(); | 489 String type = node.typeExpression.toString(); |
490 return "IsViaInterceptor: ${temporaryId(node.inputs[0])} is $type"; | 490 return "IsViaInterceptor: ${temporaryId(node.inputs[0])} is $type"; |
491 } | 491 } |
492 | 492 |
493 String visitTypeConversion(HTypeConversion node) { | 493 String visitTypeConversion(HTypeConversion node) { |
494 String checkedInput = temporaryId(node.checkedInput); | 494 String checkedInput = temporaryId(node.checkedInput); |
495 String rest; | 495 String rest; |
496 if (node.usesMethodOnType) { | 496 if (node.inputs.length == 2) { |
497 assert(node.inputs.length == 2); | |
498 assert(identical(node.checkedInput, node.inputs.last)); | |
499 rest = " ${temporaryId(node.inputs.first)}"; | |
500 } else if (node.inputs.length == 2) { | |
501 rest = " ${temporaryId(node.inputs.last)}"; | 497 rest = " ${temporaryId(node.inputs.last)}"; |
502 } else { | 498 } else { |
503 assert(node.inputs.length == 1); | 499 assert(node.inputs.length == 1); |
504 rest = ""; | 500 rest = ""; |
505 } | 501 } |
506 return "TypeConversion: $checkedInput to ${node.instructionType}$rest"; | 502 return "TypeConversion: $checkedInput to ${node.instructionType}$rest"; |
507 } | 503 } |
508 | 504 |
509 String visitTypeKnown(HTypeKnown node) { | 505 String visitTypeKnown(HTypeKnown node) { |
510 assert(node.inputs.length <= 2); | 506 assert(node.inputs.length <= 2); |
(...skipping 18 matching lines...) Expand all Loading... |
529 return "TypeInfoReadVariable: " | 525 return "TypeInfoReadVariable: " |
530 "${temporaryId(node.inputs.single)}.${node.variable}"; | 526 "${temporaryId(node.inputs.single)}.${node.variable}"; |
531 } | 527 } |
532 | 528 |
533 String visitTypeInfoExpression(HTypeInfoExpression node) { | 529 String visitTypeInfoExpression(HTypeInfoExpression node) { |
534 var inputs = node.inputs.map(temporaryId).join(', '); | 530 var inputs = node.inputs.map(temporaryId).join(', '); |
535 return "TypeInfoExpression: ${node.kindAsString} ${node.dartType}" | 531 return "TypeInfoExpression: ${node.kindAsString} ${node.dartType}" |
536 " ($inputs)"; | 532 " ($inputs)"; |
537 } | 533 } |
538 | 534 |
539 String visitReadTypeVariable(HReadTypeVariable node) { | |
540 var inputs = node.inputs.map(temporaryId).join(', '); | |
541 return "ReadTypeVariable: ${node.dartType} ${node.hasReceiver} $inputs"; | |
542 } | |
543 | |
544 String visitFunctionType(HFunctionType node) { | |
545 var inputs = node.inputs.map(temporaryId).join(', '); | |
546 return "FunctionType: ${node.dartType} $inputs"; | |
547 } | |
548 | |
549 String visitVoidType(HVoidType node) { | |
550 return "VoidType"; | |
551 } | |
552 | |
553 String visitInterfaceType(HInterfaceType node) { | |
554 return "InterfaceType: ${node.dartType}"; | |
555 } | |
556 | |
557 String visitDynamicType(HDynamicType node) { | |
558 return "DynamicType"; | |
559 } | |
560 | |
561 String visitAwait(HAwait node) { | 535 String visitAwait(HAwait node) { |
562 return "Await: ${temporaryId(node.inputs[0])}"; | 536 return "Await: ${temporaryId(node.inputs[0])}"; |
563 } | 537 } |
564 | 538 |
565 String visitYield(HYield node) { | 539 String visitYield(HYield node) { |
566 return "Yield${node.hasStar ? "*" : ""}: ${temporaryId(node.inputs[0])}"; | 540 return "Yield${node.hasStar ? "*" : ""}: ${temporaryId(node.inputs[0])}"; |
567 } | 541 } |
568 } | 542 } |
OLD | NEW |