|
[turbofan] Better and more sane support for tail calls
* Limit triggering of tail calls to explicit use of a new inline runtime
function %_TailCall. %_TailCall works just like %_Call except for using
tail-calling mechanics (currently only in TF).
* Remove hack that recognized some specific usages of %_Call and converted them
into tail calls.
* Support tail calls for all calls where the number of callee stack parameters
is less than or equal to the number of caller stack parameters.
* Use the gap resolver to swizzle parameters and registers to tail calls.
BUG= v8:4076
LOG=n
Committed: https://crrev.com/ff283f7ded84df5a5a77d088e37fd69cf6271a8c
Cr-Commit-Position: refs/heads/master@{#31987}
Total comments: 10
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+252 lines, -201 lines) |
Patch |
|
M |
src/compiler/arm/code-generator-arm.cc
|
View
|
1
2
|
3 chunks |
+9 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm64/code-generator-arm64.cc
|
View
|
1
2
3
4
5
6
7
|
3 chunks |
+9 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/code-generator.h
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/ia32/code-generator-ia32.cc
|
View
|
|
3 chunks |
+12 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-selector.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-selector.cc
|
View
|
1
2
3
4
5
6
7
|
7 chunks |
+30 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-intrinsic-lowering.h
|
View
|
1
2
3
4
5
6
7
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-intrinsic-lowering.cc
|
View
|
1
2
3
4
5
6
7
|
2 chunks |
+12 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/linkage.h
|
View
|
1
|
2 chunks |
+10 lines, -1 line |
0 comments
|
Download
|
|
M |
src/compiler/linkage.cc
|
View
|
1
2
3
4
5
6
7
|
2 chunks |
+20 lines, -62 lines |
0 comments
|
Download
|
|
M |
src/compiler/mips/code-generator-mips.cc
|
View
|
1
2
|
3 chunks |
+16 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/mips64/code-generator-mips64.cc
|
View
|
1
2
3
4
5
6
7
|
3 chunks |
+16 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/code-generator-x64.cc
|
View
|
1
2
3
4
5
6
7
|
3 chunks |
+12 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
1
2
3
4
5
6
7
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-function.cc
|
View
|
1
2
3
4
5
6
7
|
1 chunk |
+18 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/call-runtime-tail.js
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -82 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/mjsunit.status
|
View
|
1
2
3
4
5
6
7
8
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
A + |
test/mjsunit/tail-call-intrinsic.js
|
View
|
1
2
3
4
|
3 chunks |
+37 lines, -11 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/linkage-tail-call-unittest.cc
|
View
|
1
2
3
4
5
|
13 chunks |
+39 lines, -13 lines |
0 comments
|
Download
|
Total messages: 24 (11 generated)
|