8e1c0bce3d
When constant propagation evaluates EqualityCompare or StrictCompare, it can unwrap phis (if they are redundant wrt current set of reachable blocks), and calculate value if both lhs and rhs operands are the same. Previously, phi was marked as unwrapped only if that calculation changes the constant value of comparison. This is not correct as calculation based on unwrapped phi needs to be invalidated anyway if more reachable blocks are discovered and unwrapped phi becomes non-redundant. The fix is to mark the unwrapped phis regardless of whether the constant value of comparison has been changed or not. TEST=vm/dart/regress_60349_test Fixes https://github.com/dart-lang/sdk/issues/60349 Change-Id: I01e46d6def67fdc5d4c0bdc3a73aaac94725e221 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417021 Reviewed-by: Slava Egorov <vegorov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>