|
[turbofan] Further fixing ES6 tail call elimination in Turbofan.
In case when F tail calls G we should also remove the potential arguments adaptor frame for F.
This CL introduces two new machine instructions ArchTailCallCodeObjectFromJSFunction and ArchTailCallJSFunctionFromJSFunction which (unlike existing ArchTailCallCodeObject and ArchTailCallJSFunction) also drop arguments adaptor frame if it exists right before jumping to the target function.
BUG= v8:4698
LOG=N
Committed: https://crrev.com/2aae579cf04b24f605d1ae6b975d67d8dbbee672
Cr-Commit-Position: refs/heads/master@{#34566}
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+350 lines, -71 lines) |
Patch |
|
M |
src/compiler/arm/code-generator-arm.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+39 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm/instruction-selector-arm.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm64/code-generator-arm64.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+36 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/arm64/instruction-selector-arm64.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/code-generator.h
|
View
|
1
2
3
4
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/code-generator-ia32.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+50 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/ia32/instruction-selector-ia32.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-codes.h
|
View
|
1
2
3
4
|
1 chunk |
+36 lines, -34 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-scheduler.cc
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-selector.h
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/instruction-selector.cc
|
View
|
1
2
3
4
|
2 chunks |
+31 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/compiler/mips/code-generator-mips.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+38 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/mips/instruction-selector-mips.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/mips64/code-generator-mips64.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+38 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/mips64/instruction-selector-mips64.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/code-generator-x64.cc
|
View
|
1
2
3
4
5
|
4 chunks |
+39 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/compiler/x64/instruction-selector-x64.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
src/crankshaft/ia32/lithium-codegen-ia32.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/ia32/builtins-ia32.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.h
|
View
|
1
2
3
4
|
1 chunk |
+6 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/ia32/macro-assembler-ia32.cc
|
View
|
1
2
3
4
|
5 chunks |
+20 lines, -10 lines |
0 comments
|
Download
|
|
M |
test/mjsunit/es6/tail-call-megatest.js
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
test/mjsunit/es6/tail-call-simple.js
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
Depends on Patchset:
Total messages: 38 (23 generated)
|