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

Unified Diff: pkg/compiler/lib/src/cps_ir/scalar_replacement.dart

Issue 1380513002: Revert "dart2js cps: Add helpers for common IR manipulation." (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 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 side-by-side diff with in-line comments
Download patch
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 b9b6b09c378c616acfcca8d7b99027923a292bfc..18bb14d827a65c9f4000ec27200744011117b775 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 = let..insertBelow(insertionPoint);
+ insertionPoint = insertAtBody(insertionPoint, let);
}
LetMutable let = new LetMutable(variable, initialValue);
let.value.parent = let;
- insertionPoint = let..insertBelow(insertionPoint);
+ insertionPoint = insertAtBody(insertionPoint, let);
}
// Replace references with MutableVariable operations or references to the
@@ -188,6 +188,15 @@ 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;
@@ -197,7 +206,11 @@ class ScalarReplacementVisitor extends RecursiveVisitor {
void deleteLetPrimOf(Primitive primitive) {
assert(primitive.hasNoUses);
LetPrim letPrim = primitive.parent;
- letPrim.remove();
+ Node child = letPrim.body;
+ InteriorNode parent = letPrim.parent;
+ child.parent = parent;
+ parent.body = child;
+
deletePrimitive(primitive);
}
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/remove_refinements.dart ('k') | pkg/compiler/lib/src/cps_ir/share_interceptors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698