9062cf4d75
When the instruction being replaced has many uses, it is beneficial to update them together, rather than one at a time. Also: - Make value_range_analyer output intermediate state for `--dump-ssa`. - Remove bounds checks all together at end of range analysis. - Don't add RangeConversion for the length when the length is a constant. Compiling a method with 5000 assignments of the form `a[N] = N;` is reduced 20x, from 123 seconds to 6 seconds. Bug: #56919 Change-Id: I9ca7b41ca156ee40b96cfed9e18369662053b3b7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/390824 Reviewed-by: Nate Biggs <natebiggs@google.com> Commit-Queue: Stephen Adams <sra@google.com>
Dart2JS is the Dart-to-JavaScript compiler for Dart. This compiler will provide high-quality translation from Dart to JavaScript. Some areas that will explored in this project are: * high-performance extensible scanner and parser * concrete type inferencing * fancy language tool support * programming environment integration * SSA-based intermediate representation * adaptive compilation on the client