Index: lib/compiler/implementation/ssa/nodes.dart |
diff --git a/lib/compiler/implementation/ssa/nodes.dart b/lib/compiler/implementation/ssa/nodes.dart |
index 38d94e52371636cce5e4a3b41703e16e48a78331..8899d9fe6e228fef796cb1ab7577c9528b0a700e 100644 |
--- a/lib/compiler/implementation/ssa/nodes.dart |
+++ b/lib/compiler/implementation/ssa/nodes.dart |
@@ -963,6 +963,17 @@ class HInstruction implements Hashable { |
} |
} |
+ // Run through all the phis in the same block as [other] and remove them |
+ // from the users set. |
+ if (usersInCurrentBlock > 0) { |
+ for (HPhi phi = otherBlock.phis.first; phi !== null; phi = phi.next) { |
+ if (users.contains(phi)) { |
+ users.remove(phi); |
+ if (--usersInCurrentBlock == 0) break; |
+ } |
+ } |
+ } |
+ |
// Run through all the instructions before [other] and remove them |
// from the users set. |
if (usersInCurrentBlock > 0) { |