Reviewers: Benedikt Meurer, jarin,

Message:
Created Revert of Unify reading of deoptimization information.

Description:
Revert of Unify reading of deoptimization information. (patchset #11 id:200001
of https://codereview.chromium.org/1136223004/)

Reason for revert:
Suspect source of crashes in crbug.com/501765

Original issue's description:
Unify decoding of deoptimization translations.

This unifies methods Deoptimizer::DoTranslateCommand,
Deotpimizer::DoTranslateObject and the arguments object materializer.

To unify these, we have to separate reading of the input frame from writing to
the output frame because the argument materializer does not write to output
frames.

Instead, we now deoptimize in following stages:

1. Read out the input frame/registers, decode them using the translations from
the deoptimizer and store them in the deoptimizer
(Deoptimizer::translated_state_). This is done in TranslatedState::Init.

2. Write out into the output frame buffer all the values that do not require
allocation. We also remember references to the values that require
materialization. As before, this is done in Deoptimizer::DoCompute*Frame method, but instead calling to DoTranslateCommand, we use the translated frame to obtain
the values and write them to the output frames.

3. The platform specific code then sets up the output frames and calls into
the deoptimization notification. This has not been changed at all.

4. Once the stack is setup, we handlify all the references in the saved
translated values (TranslatedState::Prepare).

5. Finally, we materialize all the values we remembered in step (1) and write
them to their frames on the stack (using the TranslatedValue::GetValue method).

BUG=

Committed: https://crrev.com/9127d4eef4248c6a5266c6ed9e9a32a4ce2423eb
Cr-Commit-Position: refs/heads/master@{#28826}

[email protected],[email protected]
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Please review this at https://codereview.chromium.org/1210413005/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+1879, -1683 lines):
  M src/accessors.cc
  M src/arm/lithium-codegen-arm.cc
  M src/arm64/lithium-codegen-arm64.cc
  M src/deoptimizer.h
  M src/deoptimizer.cc
  M src/ia32/lithium-codegen-ia32.cc
  M src/mips/lithium-codegen-mips.cc
  M src/mips64/lithium-codegen-mips64.cc
  M src/ppc/lithium-codegen-ppc.cc
  M src/runtime/runtime-function.cc
  M src/x64/lithium-codegen-x64.cc
  M src/x87/lithium-codegen-x87.cc


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to