|
[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}
Total comments: 4
|
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:
Total messages: 32 (14 generated)
|