OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 dart2js.cps_ir.shrinking_reductions; | 5 library dart2js.cps_ir.shrinking_reductions; |
6 | 6 |
7 import 'cps_ir_nodes.dart'; | 7 import 'cps_ir_nodes.dart'; |
8 import 'optimizers.dart'; | 8 import 'optimizers.dart'; |
9 | 9 |
10 /** | 10 /** |
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 node.arguments.forEach((Reference ref) => ref.parent = node); | 666 node.arguments.forEach((Reference ref) => ref.parent = node); |
667 } | 667 } |
668 | 668 |
669 processCreateInvocationMirror(CreateInvocationMirror node) { | 669 processCreateInvocationMirror(CreateInvocationMirror node) { |
670 node.arguments.forEach((Reference ref) => ref.parent = node); | 670 node.arguments.forEach((Reference ref) => ref.parent = node); |
671 } | 671 } |
672 | 672 |
673 processApplyBuiltinOperator(ApplyBuiltinOperator node) { | 673 processApplyBuiltinOperator(ApplyBuiltinOperator node) { |
674 node.arguments.forEach((Reference ref) => ref.parent = node); | 674 node.arguments.forEach((Reference ref) => ref.parent = node); |
675 } | 675 } |
| 676 |
| 677 processForeignCode(ForeignCode node) { |
| 678 if (node.continuation != null) { |
| 679 node.continuation.parent = node; |
| 680 } |
| 681 node.arguments.forEach((Reference ref) => ref.parent = node); |
| 682 } |
676 } | 683 } |
677 | 684 |
678 class _ReductionKind { | 685 class _ReductionKind { |
679 final String name; | 686 final String name; |
680 final int hashCode; | 687 final int hashCode; |
681 | 688 |
682 const _ReductionKind(this.name, this.hashCode); | 689 const _ReductionKind(this.name, this.hashCode); |
683 | 690 |
684 static const _ReductionKind DEAD_VAL = const _ReductionKind('dead-val', 0); | 691 static const _ReductionKind DEAD_VAL = const _ReductionKind('dead-val', 0); |
685 static const _ReductionKind DEAD_CONT = const _ReductionKind('dead-cont', 1); | 692 static const _ReductionKind DEAD_CONT = const _ReductionKind('dead-cont', 1); |
(...skipping 26 matching lines...) Expand all Loading... |
712 } | 719 } |
713 | 720 |
714 String toString() => "$kind: $node"; | 721 String toString() => "$kind: $node"; |
715 } | 722 } |
716 | 723 |
717 /// A dummy class used solely to mark nodes as deleted once they are removed | 724 /// A dummy class used solely to mark nodes as deleted once they are removed |
718 /// from a term. | 725 /// from a term. |
719 class _DeletedNode extends Node { | 726 class _DeletedNode extends Node { |
720 accept(_) => null; | 727 accept(_) => null; |
721 } | 728 } |
OLD | NEW |