[dart2js] Fix assignment chaining
TBR=sigmund@google.com
Change-Id: Iac7e40d60b39a7dd32b8a8ecc24a68781eb716fa
Reviewed-on: https://dart-review.googlesource.com/c/93932
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
diff --git a/pkg/compiler/lib/src/ssa/codegen.dart b/pkg/compiler/lib/src/ssa/codegen.dart
index ebf05c2..d0ca90a 100644
--- a/pkg/compiler/lib/src/ssa/codegen.dart
+++ b/pkg/compiler/lib/src/ssa/codegen.dart
@@ -378,8 +378,7 @@
new SsaInstructionSelection(_options, _closedWorld, _interceptorData));
runPhase(new SsaTypeKnownRemover());
runPhase(new SsaTrustedCheckRemover(_options));
- // TODO(sra): Re-enable chaining.
- // runPhase(new SsaAssignmentChaining(_options, _closedWorld));
+ runPhase(new SsaAssignmentChaining(_options, _closedWorld));
runPhase(new SsaInstructionMerger(
_abstractValueDomain, generateAtUseSite, _superMemberData));
runPhase(new SsaConditionMerger(generateAtUseSite, controlFlowOperators));
diff --git a/pkg/compiler/lib/src/ssa/codegen_helpers.dart b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
index 082f46a..6c28b79 100644
--- a/pkg/compiler/lib/src/ssa/codegen_helpers.dart
+++ b/pkg/compiler/lib/src/ssa/codegen_helpers.dart
@@ -513,7 +513,7 @@
setter.previous == value ||
// the following tests for immediately previous phi.
(setter.previous == null && value.block == setter.block)) {
- use.changeUse(value, chain);
+ uses.replaceWith(chain);
}
}
return next;