Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(518)

Issue 1226673005: [turbofan] Reland "Add new JSFrameSpecialization reducer." and "Perform OSR deconstruction early an… (Closed)

Created:
5 years, 5 months ago by Benedikt Meurer
Modified:
5 years, 5 months ago
Reviewers:
Jarin
CC:
v8-dev
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[turbofan] Reland "Add new JSFrameSpecialization reducer." and "Perform OSR deconstruction early and remove type propagation.". We have to reland these two commits at once, because the first breaks some asm.js benchmarks without the second. The change was reverted because of bogus checks in the verifier, which will not work in the presence of OSR (and where hidden because of the type back propagation hack in OSR so far). Original messages are below: [turbofan] Add new JSFrameSpecialization reducer. The JSFrameSpecialization specializes an OSR graph to the current unoptimized frame on which we will perform the on-stack replacement. This is used for asm.js functions, where we cannot reuse the OSR code object anyway because of context specialization, and so we could as well specialize to the max instead. It works by replacing all OsrValues in the graph with their values in the JavaScriptFrame. The idea is that using this trick we get better performance without doing the unsound backpropagation of types to OsrValues later. This is the first step towards fixing OSR for TurboFan. [turbofan] Perform OSR deconstruction early and remove type propagation. This way we don't have to deal with dead pre-OSR code in the graph and risk optimizing the wrong code, especially we don't make optimistic assumptions in the dead code that leaks into the OSR code (i.e. deopt guards are in dead code, but the types propagate to OSR code via the OsrValue type back propagation). BUG=v8:4273 LOG=n R=jarin@chromium.org Committed: https://crrev.com/ef661b080426d88be188342b4d8b9df3edd49026 Cr-Commit-Position: refs/heads/master@{#29486}

Patch Set 1 #

Total comments: 2

Patch Set 2 : Address now -> know. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+173 lines, -105 lines) Patch
M BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler.h View 6 chunks +22 lines, -12 lines 0 comments Download
M src/compiler.cc View 4 chunks +7 lines, -2 lines 0 comments Download
A src/compiler/js-frame-specialization.h View 1 chunk +44 lines, -0 lines 0 comments Download
A src/compiler/js-frame-specialization.cc View 1 chunk +69 lines, -0 lines 0 comments Download
M src/compiler/osr.cc View 2 chunks +0 lines, -37 lines 0 comments Download
M src/compiler/pipeline.cc View 5 chunks +12 lines, -11 lines 0 comments Download
M src/compiler/typer.cc View 1 chunk +0 lines, -10 lines 0 comments Download
M src/compiler/verifier.cc View 1 2 chunks +6 lines, -2 lines 0 comments Download
M src/runtime/runtime-compiler.cc View 2 chunks +9 lines, -7 lines 0 comments Download
M test/cctest/compiler/test-osr.cc View 1 chunk +0 lines, -24 lines 0 comments Download
M tools/gyp/v8.gyp View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 9 (2 generated)
Benedikt Meurer
5 years, 5 months ago (2015-07-06 10:27:39 UTC) #1
Benedikt Meurer
Hey Jaro, Reland the whole beast. verifier was wrong on the JSForInStep and JSForInDone with ...
5 years, 5 months ago (2015-07-06 10:28:56 UTC) #2
Jarin
lgtm https://codereview.chromium.org/1226673005/diff/1/src/compiler/verifier.cc File src/compiler/verifier.cc (right): https://codereview.chromium.org/1226673005/diff/1/src/compiler/verifier.cc#newcode588 src/compiler/verifier.cc:588: // visible, so we now it is safe ...
5 years, 5 months ago (2015-07-06 10:34:49 UTC) #3
Benedikt Meurer
https://codereview.chromium.org/1226673005/diff/1/src/compiler/verifier.cc File src/compiler/verifier.cc (right): https://codereview.chromium.org/1226673005/diff/1/src/compiler/verifier.cc#newcode588 src/compiler/verifier.cc:588: // visible, so we now it is safe (fullcodegen ...
5 years, 5 months ago (2015-07-06 10:37:39 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1226673005/20001
5 years, 5 months ago (2015-07-06 10:37:52 UTC) #7
commit-bot: I haz the power
Committed patchset #2 (id:20001)
5 years, 5 months ago (2015-07-06 11:11:19 UTC) #8
commit-bot: I haz the power
5 years, 5 months ago (2015-07-06 11:11:37 UTC) #9
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/ef661b080426d88be188342b4d8b9df3edd49026
Cr-Commit-Position: refs/heads/master@{#29486}

Powered by Google App Engine
This is Rietveld 408576698