commit | c8e26d68cb0199b9ebb299470762b3b998677d19 | [log] [tgz] |
---|---|---|
author | Vyacheslav Egorov <vegorov@google.com> | Mon Sep 17 23:24:45 2018 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Mon Sep 17 23:24:45 2018 +0000 |
tree | 34f0e037f748e58a90b15dc07d7e2e83b7979557 | |
parent | 5c54401d74737ee15fd9066cad7ccf8289b48923 [diff] |
[vm/compiler] Improve allocation sinking precision. When we added support for sinking allocation of contexts we forgot to update IsSafeUse method - meaning that non-escaping objects stored into sinkable contexts would not be considered sinkable. This change rectifies the problem. With this change the method test_vm_field() { var obj; inner() => obj.x = 42; var a = new V(); obj = a; var t1 = a.x; var t2 = inner(); return a.x + t1 + t2; } Compiles down to test_vm_field() => 84; Before this change we would not sink allocation of V. R=alexmarkov@google.com Change-Id: If431e58fe1d958b31ea597e35cba3856558a0cca Reviewed-on: https://dart-review.googlesource.com/75222 Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Vyacheslav Egorov <vegorov@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.