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

Issue 2523893003: Reland of [ignition/turbo] Perform liveness analysis on the bytecodes (Closed)

Created:
4 years ago by Leszek Swirski
Modified:
4 years ago
Reviewers:
Jarin, rmcilroy, Yang
CC:
v8-reviews_googlegroups.com, rmcilroy
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[ignition/turbo] Perform liveness analysis on the bytecodes Replaces the graph-based liveness analyzer in the bytecode graph builder with an initial bytecode-based liveness analysis pass, which is added to the existing loop extent analysis. Now the StateValues in the graph have their inputs initialised to optimized_out, rather than being modified after the graph is built. Committed: https://crrev.com/2bf71f888fc3bcb9936e77f6aca4252034422423 Cr-Commit-Position: refs/heads/master@{#41355}

Patch Set 1 #

Total comments: 8

Patch Set 2 : Intelligently process loops after the first pass #

Patch Set 3 : Address nits #

Patch Set 4 : Fix build #

Patch Set 5 : Move liveness calculation and map to separate files #

Patch Set 6 : Change template liveness magic to runtime magic #

Patch Set 7 : Fix debugger special casing and liveness disabling #

Total comments: 36

Patch Set 8 : Address Jaro's comments #

Patch Set 9 : Address Ross's comments #

Patch Set 10 : Add exports for windows build #

Patch Set 11 : More exports #

Patch Set 12 : Add a test case for the nested loop with register killing #

Total comments: 16

Patch Set 13 : Remove debugger special case, update tests #

Patch Set 14 : Re-upload #

Patch Set 15 : Re-upload #

Patch Set 16 : Address Ross's comments #

Patch Set 17 : Access handler table directly #

Patch Set 18 : Export handler table for tests #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1105 lines, -175 lines) Patch
M BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -0 lines 0 comments Download
M src/DEPS View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/bytecode-analysis.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4 chunks +28 lines, -2 lines 0 comments Download
M src/compiler/bytecode-analysis.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +399 lines, -9 lines 0 comments Download
M src/compiler/bytecode-graph-builder.h View 3 chunks +0 lines, -9 lines 0 comments Download
M src/compiler/bytecode-graph-builder.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 22 chunks +82 lines, -118 lines 0 comments Download
A src/compiler/bytecode-liveness-map.h View 1 2 3 4 5 6 7 8 9 1 chunk +55 lines, -0 lines 0 comments Download
A src/compiler/bytecode-liveness-map.cc View 1 2 3 4 1 chunk +41 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-accessor.h View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-array-accessor.cc View 1 2 1 chunk +6 lines, -0 lines 0 comments Download
M src/interpreter/bytecode-generator.cc View 1 2 3 4 5 6 7 8 1 chunk +18 lines, -15 lines 0 comments Download
M src/interpreter/bytecode-label.h View 1 2 3 4 5 6 7 8 9 2 chunks +2 lines, -2 lines 0 comments Download
M src/interpreter/bytecodes.h View 1 2 3 4 5 6 7 8 2 chunks +12 lines, -0 lines 0 comments Download
M src/interpreter/control-flow-builders.h View 1 2 3 4 5 6 7 8 9 10 8 chunks +11 lines, -8 lines 0 comments Download
M src/interpreter/control-flow-builders.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M src/interpreter/handler-table-builder.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M src/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +4 lines, -2 lines 0 comments Download
M test/debugger/debug/debug-evaluate-with.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M test/debugger/debug/debug-liveedit-restart-frame.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M test/debugger/debug/es6/default-parameters-debug.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M test/debugger/debug/regress-5207.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M test/debugger/debug/regress/regress-131994.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M test/debugger/debug/regress/regress-5071.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -0 lines 0 comments Download
M test/debugger/debug/regress/regress-crbug-222893.js View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +2 lines, -1 line 0 comments Download
M test/mjsunit/debug-evaluate-bool-constructor.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/debug-evaluate-with-context.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/debug-scopes.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/es6/debug-blockscopes.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/es6/generators-debug-scopes.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M test/mjsunit/modules-debug-scopes1.js View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -1 line 0 comments Download
M test/unittests/BUILD.gn View 1 chunk +1 line, -0 lines 0 comments Download
A test/unittests/compiler/bytecode-analysis-unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +415 lines, -0 lines 0 comments Download
M test/unittests/unittests.gyp View 1 chunk +1 line, -0 lines 0 comments Download

Dependent Patchsets:

Messages

Total messages: 64 (42 generated)
Leszek Swirski
Hi Ross and Jaro, Here's a first pass for the bytecode liveness analysis. There's definitely ...
4 years ago (2016-11-23 17:08:26 UTC) #4
Jarin
Overall direction looking good, except the LivenessHelper thing - we are not big fans of ...
4 years ago (2016-11-24 12:47:17 UTC) #7
Leszek Swirski
Hi Ross and Jaro, Here's a big updated version, almost entirely changed since the first ...
4 years ago (2016-11-25 17:31:27 UTC) #14
Jarin
https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode15 src/compiler/bytecode-analysis-liveness.h:15: namespace compiler { Why does this stuff have to ...
4 years ago (2016-11-28 08:34:43 UTC) #17
rmcilroy
https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode15 src/compiler/bytecode-analysis-liveness.h:15: namespace compiler { On 2016/11/28 08:34:43, Jarin wrote: > ...
4 years ago (2016-11-28 10:00:31 UTC) #18
Leszek Swirski
https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode15 src/compiler/bytecode-analysis-liveness.h:15: namespace compiler { On 2016/11/28 08:34:43, Jarin wrote: > ...
4 years ago (2016-11-28 10:11:02 UTC) #19
Leszek Swirski
https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode89 src/compiler/bytecode-analysis-liveness.h:89: interpreter::Register r = accessor.GetRegisterOperand(i); On 2016/11/28 10:00:30, rmcilroy wrote: ...
4 years ago (2016-11-28 11:07:22 UTC) #20
Leszek Swirski
+yangguo: Could we get your input on the discussion about what to do with debugger ...
4 years ago (2016-11-28 11:49:24 UTC) #26
Jarin
https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode24 src/compiler/bytecode-analysis-liveness.h:24: // statement in a called function) won't keep locals ...
4 years ago (2016-11-28 12:05:42 UTC) #27
Leszek Swirski
Ready for another round of reviews, PTAL https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode24 src/compiler/bytecode-analysis-liveness.h:24: // statement ...
4 years ago (2016-11-28 14:18:51 UTC) #36
rmcilroy
A couple of suggestions and some ideas for followups, but other than that LGTM assuming ...
4 years ago (2016-11-28 15:16:37 UTC) #39
Leszek Swirski
https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h File src/compiler/bytecode-analysis-liveness.h (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis-liveness.h#newcode89 src/compiler/bytecode-analysis-liveness.h:89: interpreter::Register r = accessor.GetRegisterOperand(i); On 2016/11/28 15:16:37, rmcilroy wrote: ...
4 years ago (2016-11-28 16:31:11 UTC) #40
Jarin
lgtm, can't way to see this in action! https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis.cc File src/compiler/bytecode-analysis.cc (right): https://codereview.chromium.org/2523893003/diff/120001/src/compiler/bytecode-analysis.cc#newcode123 src/compiler/bytecode-analysis.cc:123: // ...
4 years ago (2016-11-28 19:47:20 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2523893003/300001
4 years ago (2016-11-29 09:42:02 UTC) #44
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_gyp_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_gyp_rel_ng/builds/8775) v8_linux_gcc_compile_rel on master.tryserver.v8 (JOB_FAILED, ...
4 years ago (2016-11-29 09:44:35 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2523893003/320001
4 years ago (2016-11-29 10:06:04 UTC) #49
commit-bot: I haz the power
Committed patchset #17 (id:320001)
4 years ago (2016-11-29 10:46:09 UTC) #51
commit-bot: I haz the power
Patchset 17 (id:??) landed as https://crrev.com/1852300954c216c29cf93444430681d213e87925 Cr-Commit-Position: refs/heads/master@{#41344}
4 years ago (2016-11-29 10:46:29 UTC) #53
Leszek Swirski
A revert of this CL (patchset #17 id:320001) has been created in https://codereview.chromium.org/2541443002/ by leszeks@chromium.org. ...
4 years ago (2016-11-29 10:51:05 UTC) #54
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2523893003/340001
4 years ago (2016-11-29 12:00:13 UTC) #59
commit-bot: I haz the power
Committed patchset #18 (id:340001)
4 years ago (2016-11-29 12:27:00 UTC) #62
commit-bot: I haz the power
4 years ago (2016-11-29 12:27:25 UTC) #64
Message was sent while issue was closed.
Patchset 18 (id:??) landed as
https://crrev.com/2bf71f888fc3bcb9936e77f6aca4252034422423
Cr-Commit-Position: refs/heads/master@{#41355}

Powered by Google App Engine
This is Rietveld 408576698