aae0f7997d
Rationale: This provides a more robust way of expressing control dependences between bounds checks and their uses, while still allowing for CSE and LICM where possible. This also fixes the original bug that started this whole redesign: invalid LICM of checkbound. Note: Deals with bounds check, null check still TBD. Reland of: https://dart-review.googlesource.com/c/sdk/+/85470 Mini design doc: runtime/docs/compiler/data_dep_for_control_dep.md https://github.com/dart-lang/sdk/issues/35139 https://github.com/dart-lang/sdk/issues/34684 https://github.com/dart-lang/sdk/issues/30633 Change-Id: I24b994344ed28c9f5fbf0ed033698be75448df1c Reviewed-on: https://dart-review.googlesource.com/c/85720 Commit-Queue: Aart Bik <ajcbik@google.com> Reviewed-by: Vyacheslav Egorov <vegorov@google.com>