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

Issue 1882073002: [Interpreter] Make dispatch table point to code entry instead of code objects. (Closed)

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

Description

[Interpreter] Make dispatch table point to code entry instead of code objects. Modifies Ignition to store code entry addresses in the dispatch table rather than code objects. This allows the interpreter to avoid calculating the code entry address from the code object on every dispatch and provides a ~5-7% performance improvement on Octane with Ignition. This change adds ArchOpcode::kArchTailCallAddress to TurboFan to enable tail call dispatch using these code addresses. It also adds a Dispatch linkage creator (distinct from the stub linkage type used previously) to allow targetting a code address target (which will diverge further from the stub linkage type when we remove the context machine register in Ignition). BUG=v8:4280 LOG=N Committed: https://crrev.com/0c05e02f25912c0ce510dac3077be3f72728aa34 Cr-Commit-Position: refs/heads/master@{#35480}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Addressed comments and added ports #

Patch Set 3 : Fix unittest #

Patch Set 4 : Fix visiting dispatch table. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+166 lines, -62 lines) Patch
M src/arm/builtins-arm.cc View 1 2 chunks +0 lines, -4 lines 0 comments Download
M src/arm64/builtins-arm64.cc View 1 2 chunks +0 lines, -4 lines 0 comments Download
M src/compiler/arm/code-generator-arm.cc View 1 1 chunk +8 lines, -0 lines 0 comments Download
M src/compiler/arm64/code-generator-arm64.cc View 1 1 chunk +8 lines, -0 lines 0 comments Download
M src/compiler/code-stub-assembler.h View 1 1 chunk +2 lines, -3 lines 0 comments Download
M src/compiler/code-stub-assembler.cc View 1 1 chunk +6 lines, -8 lines 0 comments Download
M src/compiler/ia32/code-generator-ia32.cc View 1 1 chunk +9 lines, -0 lines 0 comments Download
M src/compiler/instruction.h View 1 chunk +2 lines, -1 line 0 comments Download
M src/compiler/instruction-codes.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/instruction-scheduler.cc View 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/instruction-selector.cc View 1 chunk +3 lines, -0 lines 0 comments Download
M src/compiler/linkage.h View 1 2 chunks +9 lines, -4 lines 0 comments Download
M src/compiler/linkage.cc View 1 1 chunk +49 lines, -0 lines 0 comments Download
M src/compiler/mips/code-generator-mips.cc View 1 1 chunk +8 lines, -0 lines 0 comments Download
M src/compiler/mips64/code-generator-mips64.cc View 1 1 chunk +8 lines, -0 lines 0 comments Download
M src/compiler/x64/code-generator-x64.cc View 1 chunk +9 lines, -0 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 chunks +0 lines, -7 lines 0 comments Download
M src/interpreter/interpreter.h View 1 chunk +1 line, -1 line 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 chunks +18 lines, -8 lines 0 comments Download
M src/interpreter/interpreter-assembler.h View 2 chunks +8 lines, -2 lines 0 comments Download
M src/interpreter/interpreter-assembler.cc View 1 3 chunks +12 lines, -7 lines 0 comments Download
M src/mips/builtins-mips.cc View 1 2 chunks +0 lines, -4 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 1 2 chunks +0 lines, -4 lines 0 comments Download
M src/x64/builtins-x64.cc View 2 chunks +0 lines, -4 lines 0 comments Download
M test/unittests/interpreter/interpreter-assembler-unittest.cc View 1 2 1 chunk +4 lines, -1 line 0 comments Download

Depends on Patchset:

Dependent Patchsets:

Messages

Total messages: 32 (14 generated)
rmcilroy
Benedkit, this is the CL I discussed over chat. PTAL, if you think it is ...
4 years, 8 months ago (2016-04-12 13:14:42 UTC) #2
Benedikt Meurer
I think the approach is OK, but I don't like the naming. The "Dispatch" is ...
4 years, 8 months ago (2016-04-12 13:20:12 UTC) #3
rmcilroy
Done and added ports, PTAL. https://codereview.chromium.org/1882073002/diff/1/src/compiler/code-stub-assembler.h File src/compiler/code-stub-assembler.h (right): https://codereview.chromium.org/1882073002/diff/1/src/compiler/code-stub-assembler.h#newcode270 src/compiler/code-stub-assembler.h:270: Node* TailCallDispatch(const CallInterfaceDescriptor& descriptor, ...
4 years, 8 months ago (2016-04-12 15:25:58 UTC) #5
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1882073002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1882073002/40001
4 years, 8 months ago (2016-04-12 15:34:45 UTC) #7
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_gcc_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_gcc_compile_rel/builds/14594)
4 years, 8 months ago (2016-04-12 15:40:39 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1882073002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1882073002/40001
4 years, 8 months ago (2016-04-12 15:46:45 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_presubmit on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_presubmit/builds/13512)
4 years, 8 months ago (2016-04-12 15:51:59 UTC) #13
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1882073002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1882073002/60001
4 years, 8 months ago (2016-04-12 16:30:39 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_dbg_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg_ng/builds/4155) v8_linux_dbg_ng_triggered on ...
4 years, 8 months ago (2016-04-12 16:52:40 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1882073002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1882073002/60001
4 years, 8 months ago (2016-04-12 17:16:11 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_dbg_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg_ng/builds/4158) v8_linux_dbg_ng_triggered on ...
4 years, 8 months ago (2016-04-12 17:34:43 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1882073002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1882073002/80001
4 years, 8 months ago (2016-04-13 12:12:49 UTC) #23
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-13 12:35:43 UTC) #25
rmcilroy
Ping?
4 years, 8 months ago (2016-04-14 09:39:27 UTC) #26
Benedikt Meurer
LGTM
4 years, 8 months ago (2016-04-14 09:54:05 UTC) #27
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1882073002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1882073002/80001
4 years, 8 months ago (2016-04-14 10:01:41 UTC) #29
commit-bot: I haz the power
Committed patchset #4 (id:80001)
4 years, 8 months ago (2016-04-14 10:03:55 UTC) #30
commit-bot: I haz the power
4 years, 8 months ago (2016-04-14 10:04:31 UTC) #32
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/0c05e02f25912c0ce510dac3077be3f72728aa34
Cr-Commit-Position: refs/heads/master@{#35480}

Powered by Google App Engine
This is Rietveld 408576698