|
[runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments.
The FastNewStrictArgumentsStub is very similar to the recently added
FastNewRestParameterStub, it's actually almost a copy of it, except that
it doesn't have the fast case we have for the empty rest parameter. This
patch improves strict arguments in TurboFan and fullcodegen by up to 10x
compared to the previous version.
Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject
for the in-object properties instead of having them as constants in the
Heap class.
Drive-by-fix: Use this stub and the FastNewRestParameterStub in the
interpreter to avoid the runtime call overhead for strict arguments
and rest parameter creation.
R=jarin@chromium.org
TBR=mstarzinger@chromium.org
Committed: https://crrev.com/09d845354742a90fc0596262eb5cbaac169e5ed9
Cr-Commit-Position: refs/heads/master@{#33925}
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1052 lines, -926 lines) |
Patch |
|
M |
src/arm/builtins-arm.cc
|
View
|
1
|
1 chunk |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/arm/code-stubs-arm.cc
|
View
|
|
5 chunks |
+112 lines, -101 lines |
0 comments
|
Download
|
|
M |
src/arm/interface-descriptors-arm.cc
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/arm64/builtins-arm64.cc
|
View
|
1
|
1 chunk |
+2 lines, -4 lines |
0 comments
|
Download
|
|
M |
src/arm64/code-stubs-arm64.cc
|
View
|
|
5 chunks |
+116 lines, -139 lines |
0 comments
|
Download
|
|
M |
src/arm64/interface-descriptors-arm64.cc
|
View
|
|
1 chunk |
+8 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/bootstrapper.cc
|
View
|
1
|
4 chunks |
+11 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/builtins.cc
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/code-factory.h
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
src/code-factory.cc
|
View
|
|
1 chunk |
+9 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/code-stubs.h
|
View
|
|
5 chunks |
+17 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/code-stubs.cc
|
View
|
|
2 chunks |
+0 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/compiler/access-builder.cc
|
View
|
|
1 chunk |
+4 lines, -8 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-create-lowering.cc
|
View
|
|
3 chunks |
+53 lines, -38 lines |
0 comments
|
Download
|
|
M |
src/compiler/js-generic-lowering.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/full-codegen/arm/full-codegen-arm.cc
|
View
|
1
|
1 chunk |
+22 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/arm64/full-codegen-arm64.cc
|
View
|
1
|
1 chunk |
+22 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/ia32/full-codegen-ia32.cc
|
View
|
1
|
1 chunk |
+24 lines, -19 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/mips/full-codegen-mips.cc
|
View
|
1
|
1 chunk |
+22 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/mips64/full-codegen-mips64.cc
|
View
|
1
|
1 chunk |
+22 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/full-codegen/x64/full-codegen-x64.cc
|
View
|
1
|
1 chunk |
+22 lines, -18 lines |
0 comments
|
Download
|
|
M |
src/heap/heap.h
|
View
|
|
1 chunk |
+0 lines, -14 lines |
0 comments
|
Download
|
|
M |
src/ia32/builtins-ia32.cc
|
View
|
1
|
1 chunk |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/code-stubs-ia32.cc
|
View
|
|
4 chunks |
+118 lines, -104 lines |
0 comments
|
Download
|
|
M |
src/ia32/interface-descriptors-ia32.cc
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/interface-descriptors.h
|
View
|
|
2 chunks |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/interpreter/interpreter.cc
|
View
|
1
|
2 chunks |
+7 lines, -5 lines |
0 comments
|
Download
|
|
M |
src/mips/builtins-mips.cc
|
View
|
1
|
1 chunk |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/mips/code-stubs-mips.cc
|
View
|
1
|
6 chunks |
+111 lines, -101 lines |
0 comments
|
Download
|
|
M |
src/mips/interface-descriptors-mips.cc
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/mips64/builtins-mips64.cc
|
View
|
1
|
1 chunk |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/mips64/code-stubs-mips64.cc
|
View
|
1
|
5 chunks |
+115 lines, -101 lines |
0 comments
|
Download
|
|
M |
src/mips64/interface-descriptors-mips64.cc
|
View
|
|
1 chunk |
+7 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/objects.h
|
View
|
1
|
2 chunks |
+42 lines, -1 line |
0 comments
|
Download
|
|
M |
src/runtime/runtime.h
|
View
|
1
|
1 chunk |
+1 line, -2 lines |
0 comments
|
Download
|
|
M |
src/runtime/runtime-scopes.cc
|
View
|
|
3 chunks |
+15 lines, -41 lines |
0 comments
|
Download
|
|
M |
src/x64/builtins-x64.cc
|
View
|
1
|
1 chunk |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/x64/code-stubs-x64.cc
|
View
|
|
4 chunks |
+121 lines, -107 lines |
0 comments
|
Download
|
|
M |
src/x64/interface-descriptors-x64.cc
|
View
|
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
test/unittests/compiler/js-create-lowering-unittest.cc
|
View
|
|
3 chunks |
+6 lines, -7 lines |
0 comments
|
Download
|
Total messages: 19 (8 generated)
|