Vyacheslav Egorov 1fcc7384aa VM: [DBC] Fix lazy deoptimization after calls that return no values.
On DBC calls return value on the stack instead of a dedicate register but not all calls have a return value (e.g. CheckStack does not) and such calls don't push anything. Implementation of a lazy deopt however assumed that value is always present and tried to manually preserve it by popping and pushing it back after the frame was rewritten. This of course damaged the frame if we performed a lazy deoptimization after the call that did not push anything.

Instead of manually preserving result value value use frame translation to handle it. This allows to handle calls that return value and those that do not uniformly in the Deopt bytecode. Compiler takes care of creating the right deoptimization environment instead.

BUG=
R=zra@google.com

Review-Url: https://codereview.chromium.org/2587133002 .
2016-12-19 23:08:26 +01:00
2016-12-15 11:12:42 -08:00
2016-12-06 16:58:15 -08:00
2016-09-23 07:47:36 -07:00
2016-12-08 06:35:04 -08:00
2015-07-16 09:51:56 -07:00
2016-12-15 10:05:55 -08:00
2015-09-18 13:18:10 -07:00

Dart

Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Using Dart

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.

Building Dart

Learn how to get the source and prepare your machine to build the SDK.

There are more documents on our wiki.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.

License

See LICENSE.

S
Description
No description provided
Readme BSD-3-Clause 1.4 GiB
Languages
Dart 84.6%
C++ 13%
Python 0.7%
JavaScript 0.5%
HTML 0.4%
Other 0.5%