Commit Graph

2 Commits

Author SHA1 Message Date
Martin Kustermann 6127386cfa [vm/compiler] Ensure allocate instructions have correctly pruned lazy deopt environment
Since allocation instructions can throw OOM exceptions, they require
deopt information. In general it's rather hard to test that this deopt
information is correct.

In order to test this, this CL makes those IR instructions support lazy
deopt and add tests that exercise this deopt sequence, thereby ensuring
the deoptimization environment is correct.

Issue https://github.com/dart-lang/sdk/issues/45213

TEST=New vm/dart_2/isolates/deopt/*_test.

Change-Id: I6a02dcf5a0c47636f1f0aa4cd8cc0d2b4f032ca0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192687
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-03-24 12:48:29 +00:00
Martin Kustermann deb946745c [vm/compiler] Correctly prune environment for lazy-deopt in IR instructions
This ensures the following IR instructions use a correctly pruned
lazy-deopt environment:

  * AssertBoolInstr
  * AssertSubtypeInstr
  * InstantiateTypeInstr
  * InstantiateTypeArgumentsInstr

Issue https://github.com/dart-lang/sdk/issues/45213

TEST=New vm/dart_2/isolates/deopt/*_test.

Change-Id: I3d44909f0933c5df109d69e0a61f2d9d7dcc1247
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192184
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-03-23 14:03:56 +00:00