commit | 3ef595bb56ae05452f667272053702bb4d16933d | [log] [tgz] |
---|---|---|
author | Stevie Strickland <sstrickl@google.com> | Fri Jan 11 15:47:02 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri Jan 11 15:47:02 2019 +0000 |
tree | c13321a003afb75e5c6344cb283f5c3bf79dd8e4 | |
parent | 68ad94cebec3b2f7f6e0c0285ff160aec6e0d31d [diff] |
[VM/Compiler] Separate out inlined code from replacement result. The inliner assumes that the last instruction replacing the original call is a definition so it can replace all the uses of the call. Unfortunately, we have a couple of instructions (StoreIndexed and StoreInstanceField) that are not _really_ definitions. Change FlowGraphInliner::TryInlineRecognizedMethod to create a distinction between the last instruction to be inlined and the definition that should be used as the new result. For inlines that end in a StoreIndexed or StoreInstanceField, use the null constant as the new result. Further work towards a better fix for https://github.com/dart-lang/sdk/issues/35481 Change-Id: I5a9effe44388de9f03681565b1de2cf2c46e91c6 Reviewed-on: https://dart-review.googlesource.com/c/88960 Commit-Queue: Stevie Strickland <sstrickl@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.