commit | 7da3fe2ca2a6c85f74f4b06bded9b1a37bce7104 | [log] [tgz] |
---|---|---|
author | Vyacheslav Egorov <vegorov@google.com> | Sat Jul 14 11:22:55 2018 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Sat Jul 14 11:22:55 2018 +0000 |
tree | 3e1cc2da291d5e2cf17558cd5df84751e8cec4a4 | |
parent | 2b473c4fac07fb66debe3b9ba384c5a73d0bf078 [diff] |
[vm/compiler] Inline implicit setters in call specializer in strong mode. Previously we relegated this to the inliner which interfers with inlining heuristics. Additionally avoid emitting assert assignable when specializing assignments on the receiver. This improves the following microbenchmark by a factor of 3: int sumList(List<A> l) { var sum = 0; for (var obj in l) { // this would generate AssertAssignable for sum += obj.field; // _ListIterator._current } return sum; } Bug: https://github.com/dart-lang/sdk/issues/33257 Change-Id: Ib2fff8be7c953981bdf5967baf7fcd5f6f648dcf Reviewed-on: https://dart-review.googlesource.com/64842 Commit-Queue: Vyacheslav Egorov <vegorov@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com>
Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.
Visit the dartlang.org to learn more about the language, tools, getting started, and more.
Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.
If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.
There are more documents on our wiki.
The easiest way to contribute to Dart is to file issues.
You can also contribute patches, as described in Contributing.