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

Issue 2753793002: [builtins] Separate Array.prototype.* CSA builtins into two parts (Closed)

Created:
3 years, 9 months ago by danno
Modified:
3 years, 9 months ago
CC:
v8-reviews_googlegroups.com
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[builtins] Separate Array.prototype.* CSA builtins into two parts Previous to this CL, CSA-optimized Array builtins--like forEach, some, and every--were written in a single, monolithic block of CSA code. This CL teases the code for each of these builtins apart into two chunks, a main body with optimizations for fast cases, and a "continuation" builtin that performs a spec-compliant, but slower version of the main loop of the builtin. The general idea is that when the "fast" main body builtin encounters an unexpected condition that invalidates assumptions allowing fast-case code, it tail calls to the slow, correct version of the loop that finishes the builtin execution. This separation currently doens't really provide any specific advantage over the combined version. However, it paves the way to TF-optimized inlined Array builtins. Inlined Array builtins may trigger deopts during the execution of the builtin's loop, and those deopt must continue execution from the point at which they failed. With some massaging of the deoptimizer, it will be possible to make those deopt points create an extra frame on the top of the stack which resumes execution in the slow-loop builtin created in this CL. BUG=v8:1956 LOG=N Review-Url: https://codereview.chromium.org/2753793002 Cr-Commit-Position: refs/heads/master@{#43867} Committed: https://chromium.googlesource.com/v8/v8/+/7de21c4d3b68976558879f126d83e86dc44c4f65

Patch Set 1 #

Patch Set 2 : Remove dead code #

Patch Set 3 : Merge with ToT #

Patch Set 4 : Remove stray changes #

Patch Set 5 : Remove stray changes #

Unified diffs Side-by-side diffs Delta from patch set Stats (+279 lines, -195 lines) Patch
M src/builtins/builtins.h View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M src/builtins/builtins-array-gen.cc View 1 2 3 3 chunks +120 lines, -73 lines 0 comments Download
M src/code-factory.h View 1 2 1 chunk +3 lines, -0 lines 0 comments Download
M src/code-factory.cc View 1 2 1 chunk +18 lines, -0 lines 0 comments Download
M src/compiler/code-assembler.cc View 6 chunks +12 lines, -7 lines 0 comments Download
M src/interface-descriptors.h View 1 2 3 chunks +123 lines, -115 lines 0 comments Download

Messages

Total messages: 26 (18 generated)
danno
PTAL
3 years, 9 months ago (2017-03-15 09:47:21 UTC) #2
danno
3 years, 9 months ago (2017-03-16 11:37:02 UTC) #12
mvstanton
Cool stuff, LGTM!
3 years, 9 months ago (2017-03-16 12:46:13 UTC) #13
Igor Sheludko
lgtm
3 years, 9 months ago (2017-03-16 14:12:36 UTC) #14
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2753793002/20001
3 years, 9 months ago (2017-03-16 14:16:34 UTC) #16
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_asan_rel_ng on master.tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_asan_rel_ng/builds/19005) v8_linux64_rel_ng on master.tryserver.v8 (JOB_FAILED, ...
3 years, 9 months ago (2017-03-16 14:18:06 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2753793002/80001
3 years, 9 months ago (2017-03-16 15:06:55 UTC) #23
commit-bot: I haz the power
3 years, 9 months ago (2017-03-16 15:34:11 UTC) #26
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as
https://chromium.googlesource.com/v8/v8/+/7de21c4d3b68976558879f126d83e86dc44...

Powered by Google App Engine
This is Rietveld 408576698