| 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 part of dart2js.optimizers; | 5 part of dart2js.optimizers; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * [ShrinkingReducer] applies shrinking reductions to CPS terms as described | 8 * [ShrinkingReducer] applies shrinking reductions to CPS terms as described |
| 9 * in 'Compiling with Continuations, Continued' by Andrew Kennedy. | 9 * in 'Compiling with Continuations, Continued' by Andrew Kennedy. |
| 10 */ | 10 */ |
| (...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 404 processIsTrue(IsTrue node) { | 404 processIsTrue(IsTrue node) { |
| 405 node.value.parent = node; | 405 node.value.parent = node; |
| 406 } | 406 } |
| 407 | 407 |
| 408 // JavaScript specific nodes. | 408 // JavaScript specific nodes. |
| 409 | 409 |
| 410 processIdentical(Identical node) { | 410 processIdentical(Identical node) { |
| 411 node.left.parent = node; | 411 node.left.parent = node; |
| 412 node.right.parent = node; | 412 node.right.parent = node; |
| 413 } | 413 } |
| 414 |
| 415 processInterceptor(Interceptor node) { |
| 416 node.input.parent = node; |
| 417 } |
| 414 } | 418 } |
| 415 | 419 |
| 416 class _ReductionKind { | 420 class _ReductionKind { |
| 417 final String name; | 421 final String name; |
| 418 final int hashCode; | 422 final int hashCode; |
| 419 | 423 |
| 420 const _ReductionKind(this.name, this.hashCode); | 424 const _ReductionKind(this.name, this.hashCode); |
| 421 | 425 |
| 422 static const _ReductionKind DEAD_VAL = const _ReductionKind('dead-val', 0); | 426 static const _ReductionKind DEAD_VAL = const _ReductionKind('dead-val', 0); |
| 423 static const _ReductionKind DEAD_CONT = const _ReductionKind('dead-cont', 1); | 427 static const _ReductionKind DEAD_CONT = const _ReductionKind('dead-cont', 1); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 450 } | 454 } |
| 451 | 455 |
| 452 String toString() => "$kind: $node"; | 456 String toString() => "$kind: $node"; |
| 453 } | 457 } |
| 454 | 458 |
| 455 /// A dummy class used solely to mark nodes as deleted once they are removed | 459 /// A dummy class used solely to mark nodes as deleted once they are removed |
| 456 /// from a term. | 460 /// from a term. |
| 457 class _DeletedNode extends Node { | 461 class _DeletedNode extends Node { |
| 458 accept(_) => null; | 462 accept(_) => null; |
| 459 } | 463 } |
| OLD | NEW |