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

Issue 1693513002: [runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments. (Closed)

Created:
4 years, 10 months ago by Benedikt Meurer
Modified:
4 years, 10 months ago
CC:
v8-reviews_googlegroups.com, v8-x87-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, v8-mips-ports_googlegroups.com, rmcilroy, Hannes Payer (out of office), ulan, oth
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[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}

Patch Set 1 #

Patch Set 2 : Fix mips and mips64. #

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

Messages

Total messages: 19 (8 generated)
Benedikt Meurer
4 years, 10 months ago (2016-02-11 14:03:30 UTC) #1
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1693513002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1693513002/1
4 years, 10 months ago (2016-02-11 17:40:07 UTC) #3
Benedikt Meurer
Hey Jaro, Here's the next baby. It's very similar to the FastNewRestParameterStub (actually more or ...
4 years, 10 months ago (2016-02-11 17:41:46 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1693513002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1693513002/20001
4 years, 10 months ago (2016-02-11 17:47:04 UTC) #6
akos.palfi.imgtec
MIPS part l-g-t-m, thanks for doing the port and fixing the at/t0 thing! :)
4 years, 10 months ago (2016-02-11 17:53:38 UTC) #8
Benedikt Meurer
On 2016/02/11 17:53:38, akos.palfi.imgtec wrote: > MIPS part l-g-t-m, thanks for doing the port and ...
4 years, 10 months ago (2016-02-11 18:00:25 UTC) #9
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 10 months ago (2016-02-11 18:24:18 UTC) #11
Jarin
lgtm, although it would be good to understand why the ArgumentsAccessStub was not doing its ...
4 years, 10 months ago (2016-02-12 05:07:11 UTC) #12
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1693513002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1693513002/20001
4 years, 10 months ago (2016-02-12 05:09:05 UTC) #15
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 10 months ago (2016-02-12 05:10:46 UTC) #17
commit-bot: I haz the power
4 years, 10 months ago (2016-02-12 05:11:13 UTC) #19
Message was sent while issue was closed.
Patchset 2 (id:??) landed as
https://crrev.com/09d845354742a90fc0596262eb5cbaac169e5ed9
Cr-Commit-Position: refs/heads/master@{#33925}

Powered by Google App Engine
This is Rietveld 408576698