commit | 836c04f3d29f755bc96ecce249e0d8b479dc7291 | [log] [tgz] |
---|---|---|
author | Vyacheslav Egorov <vegorov@google.com> | Fri May 03 14:18:28 2019 +0000 |
committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri May 03 14:18:28 2019 +0000 |
tree | da99fb924e8b1a67b16178799b81c148c798ee97 | |
parent | fb7137ba6fd7f180fd1bf412d57ef9f4580bd813 [diff] |
[vm/compiler] Ensure aliasing between *[C|S] and X[C'|S'] for S < S'. Previously when computing aliasing during load propagation we only propagated aliasing from X[C'|S'] to *[C''|S''] for S' < S''. The code incorrectly assumed that this propagation is symmetric (which it is not) and expected that *[C|S] would be cross aliased with X[C'|S'] when *[C|S] is visited. Now we split symmetric and non-symmetric parts of the aliasing computation: X[C'|S'] propagates aliasing to X[C''|S''] for S' < S'' - which is symmetric. Separately if X is an aliased instance we propagate aliasing from X[C'|S'] to *[C|S] for all sizes S. Change-Id: Iccd4c73a18ffd3f60fd179df43a6b117e0844b64 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101281 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.