| Index: pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| diff --git a/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart b/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| index 18bb14d827a65c9f4000ec27200744011117b775..b9b6b09c378c616acfcca8d7b99027923a292bfc 100644
|
| --- a/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| +++ b/pkg/compiler/lib/src/cps_ir/scalar_replacement.dart
|
| @@ -141,11 +141,11 @@ class ScalarReplacementVisitor extends RecursiveVisitor {
|
| initialValue = new Constant(new NullConstantValue());
|
| LetPrim let = new LetPrim(initialValue);
|
| let.primitive.parent = let;
|
| - insertionPoint = insertAtBody(insertionPoint, let);
|
| + insertionPoint = let..insertBelow(insertionPoint);
|
| }
|
| LetMutable let = new LetMutable(variable, initialValue);
|
| let.value.parent = let;
|
| - insertionPoint = insertAtBody(insertionPoint, let);
|
| + insertionPoint = let..insertBelow(insertionPoint);
|
| }
|
|
|
| // Replace references with MutableVariable operations or references to the
|
| @@ -188,15 +188,6 @@ class ScalarReplacementVisitor extends RecursiveVisitor {
|
| deleteLetPrimOf(allocation);
|
| }
|
|
|
| - InteriorNode insertAtBody(
|
| - InteriorNode insertionPoint, InteriorExpression let) {
|
| - let.parent = insertionPoint;
|
| - let.body = insertionPoint.body;
|
| - let.body.parent = let;
|
| - insertionPoint.body = let;
|
| - return let;
|
| - }
|
| -
|
| /// Replaces [old] with [primitive] in [old]'s parent [LetPrim].
|
| void replacePrimitive(Primitive old, Primitive primitive) {
|
| LetPrim letPrim = old.parent;
|
| @@ -206,11 +197,7 @@ class ScalarReplacementVisitor extends RecursiveVisitor {
|
| void deleteLetPrimOf(Primitive primitive) {
|
| assert(primitive.hasNoUses);
|
| LetPrim letPrim = primitive.parent;
|
| - Node child = letPrim.body;
|
| - InteriorNode parent = letPrim.parent;
|
| - child.parent = parent;
|
| - parent.body = child;
|
| -
|
| + letPrim.remove();
|
| deletePrimitive(primitive);
|
| }
|
|
|
|
|