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

Issue 2373983004: [turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer. (Closed)

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

Description

[turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer. Implement the logic for StringIterator.prototype.next in the JSBuiltinReducer in order to allow inlining when the receiver is a JS_STRING_ITERATOR_TYPE map, built ontop of the SimplifiedOperators StringCharCodeAt and the newly added StringFromCodePoint. Also introduces a new StringFromCodePoint simplified op which may be useful for other String builtins, such as String.fromCodePoint() BUG=v8:5388 R=bmeurer@chromium.org, mstarzinger@chromium.org Committed: https://crrev.com/aed32e0f22353527993de8bceaf246fc744558f5 Cr-Commit-Position: refs/heads/master@{#39994}

Patch Set 1 #

Total comments: 17

Patch Set 2 : some readability changes #

Total comments: 2

Patch Set 3 : V3 #

Patch Set 4 : V3.2 #

Patch Set 5 : V3.3 (fix win32 build) #

Patch Set 6 : fix build #

Patch Set 7 : Fix the build more, and hopefully fix test failures? #

Total comments: 3

Patch Set 8 : fix bug caused by InstallBuiltinFunctionIds() and some minor cleanup #

Total comments: 7

Patch Set 9 : remove unused FirstCharacterPair() accessor #

Patch Set 10 : OtherObject() instead of DetectableReceiver(), and type Allocation() node of JSIteratorResult #

Patch Set 11 : Use JSCreateIteratorResult() operator instead of allocation #

Total comments: 2

Patch Set 12 : some renaming for consistency + remove the extra break #

Patch Set 13 : Reland "[turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer" #

Unified diffs Side-by-side diffs Delta from patch set Stats (+451 lines, -6 lines) Patch
M src/bootstrapper.cc View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M src/code-stub-assembler.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +0 lines, -6 lines 0 comments Download
M src/compiler/access-builder.h View 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M src/compiler/access-builder.cc View 1 2 3 4 5 6 7 8 1 chunk +18 lines, -0 lines 0 comments Download
M src/compiler/effect-control-linearizer.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/compiler/effect-control-linearizer.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +196 lines, -0 lines 0 comments Download
M src/compiler/js-builtin-reducer.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +3 lines, -0 lines 0 comments Download
M src/compiler/js-builtin-reducer.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +139 lines, -0 lines 0 comments Download
M src/compiler/opcodes.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download
M src/compiler/simplified-lowering.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/compiler/simplified-operator.h View 1 2 chunks +3 lines, -0 lines 0 comments Download
M src/compiler/simplified-operator.cc View 1 3 chunks +28 lines, -0 lines 0 comments Download
M src/compiler/typer.cc View 1 2 3 4 5 6 7 8 9 4 chunks +22 lines, -0 lines 0 comments Download
M src/compiler/verifier.cc View 1 chunk +5 lines, -0 lines 0 comments Download
M src/globals.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +21 lines, -0 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 63 (34 generated)
caitp
Hi, I'm having some trouble with this --- I think I've sorted out most of ...
4 years, 2 months ago (2016-09-29 12:37:27 UTC) #2
Benedikt Meurer
First round of comments; need to dive into this to help you with the scheduler. ...
4 years, 2 months ago (2016-09-29 13:04:27 UTC) #3
Benedikt Meurer
https://codereview.chromium.org/2373983004/diff/1/src/compiler/effect-control-linearizer.cc File src/compiler/effect-control-linearizer.cc (right): https://codereview.chromium.org/2373983004/diff/1/src/compiler/effect-control-linearizer.cc#newcode2234 src/compiler/effect-control-linearizer.cc:2234: EffectControlLinearizer::LowerStringCharCodeAt(Node* node, Node* effect, I wonder how much the ...
4 years, 2 months ago (2016-09-29 16:40:01 UTC) #4
Benedikt Meurer
https://codereview.chromium.org/2373983004/diff/20001/src/compiler/js-builtin-reducer.cc File src/compiler/js-builtin-reducer.cc (right): https://codereview.chromium.org/2373983004/diff/20001/src/compiler/js-builtin-reducer.cc#newcode1147 src/compiler/js-builtin-reducer.cc:1147: { done_false = vfalse0 = jsgraph()->UndefinedConstant(); } You should ...
4 years, 2 months ago (2016-09-29 17:19:05 UTC) #5
caitp
https://codereview.chromium.org/2373983004/diff/1/src/compiler/js-builtin-reducer.cc File src/compiler/js-builtin-reducer.cc (right): https://codereview.chromium.org/2373983004/diff/1/src/compiler/js-builtin-reducer.cc#newcode1057 src/compiler/js-builtin-reducer.cc:1057: Node* uint32_index = On 2016/09/29 13:04:27, Benedikt Meurer wrote: ...
4 years, 2 months ago (2016-09-29 17:21:45 UTC) #6
caitp
4 years, 2 months ago (2016-09-29 17:21:46 UTC) #7
caitp
https://codereview.chromium.org/2373983004/diff/1/src/compiler/effect-control-linearizer.cc File src/compiler/effect-control-linearizer.cc (right): https://codereview.chromium.org/2373983004/diff/1/src/compiler/effect-control-linearizer.cc#newcode2234 src/compiler/effect-control-linearizer.cc:2234: EffectControlLinearizer::LowerStringCharCodeAt(Node* node, Node* effect, On 2016/09/29 16:40:01, Benedikt Meurer ...
4 years, 2 months ago (2016-09-29 20:08:02 UTC) #8
Benedikt Meurer
On 2016/09/29 20:08:02, caitp wrote: > https://codereview.chromium.org/2373983004/diff/1/src/compiler/effect-control-linearizer.cc > File src/compiler/effect-control-linearizer.cc (right): > > https://codereview.chromium.org/2373983004/diff/1/src/compiler/effect-control-linearizer.cc#newcode2234 > ...
4 years, 2 months ago (2016-09-30 04:23:19 UTC) #9
caitp
I've done some work on this (thanks for the help with the scheduler error), and ...
4 years, 2 months ago (2016-10-01 01:31:12 UTC) #13
caitp
On 2016/10/01 01:31:12, caitp wrote: > I've done some work on this (thanks for the ...
4 years, 2 months ago (2016-10-01 01:39:08 UTC) #18
caitp
On 2016/10/01 01:39:08, caitp wrote: > On 2016/10/01 01:31:12, caitp wrote: > > I've done ...
4 years, 2 months ago (2016-10-01 10:56:11 UTC) #27
caitp
https://codereview.chromium.org/2373983004/diff/110001/src/objects.h File src/objects.h (right): https://codereview.chromium.org/2373983004/diff/110001/src/objects.h#newcode7036 src/objects.h:7036: V(% StringIteratorPrototype %, next, StringIteratorPrototypeNext) \ Mystery solved
4 years, 2 months ago (2016-10-01 17:34:58 UTC) #28
Benedikt Meurer
https://codereview.chromium.org/2373983004/diff/110001/src/compiler/access-builder.h File src/compiler/access-builder.h (right): https://codereview.chromium.org/2373983004/diff/110001/src/compiler/access-builder.h#newcode178 src/compiler/access-builder.h:178: static FieldAccess ForSeqTwoByteStringFirstCharacterPair(); Remove this unused method. https://codereview.chromium.org/2373983004/diff/110001/src/objects.h File ...
4 years, 2 months ago (2016-10-01 17:36:25 UTC) #29
Benedikt Meurer
https://codereview.chromium.org/2373983004/diff/130001/src/compiler/js-builtin-reducer.cc File src/compiler/js-builtin-reducer.cc (right): https://codereview.chromium.org/2373983004/diff/130001/src/compiler/js-builtin-reducer.cc#newcode1167 src/compiler/js-builtin-reducer.cc:1167: jsgraph()->Int32Constant(JSIteratorResult::kSize), effect, control); With your Typer change, you'll need ...
4 years, 2 months ago (2016-10-01 17:41:03 UTC) #32
Benedikt Meurer
https://codereview.chromium.org/2373983004/diff/130001/src/compiler/js-builtin-reducer.cc File src/compiler/js-builtin-reducer.cc (right): https://codereview.chromium.org/2373983004/diff/130001/src/compiler/js-builtin-reducer.cc#newcode1167 src/compiler/js-builtin-reducer.cc:1167: jsgraph()->Int32Constant(JSIteratorResult::kSize), effect, control); Actually I'd be even better to ...
4 years, 2 months ago (2016-10-01 17:59:33 UTC) #33
caitp
https://codereview.chromium.org/2373983004/diff/130001/src/compiler/js-builtin-reducer.cc File src/compiler/js-builtin-reducer.cc (right): https://codereview.chromium.org/2373983004/diff/130001/src/compiler/js-builtin-reducer.cc#newcode1167 src/compiler/js-builtin-reducer.cc:1167: jsgraph()->Int32Constant(JSIteratorResult::kSize), effect, control); On 2016/10/01 17:59:33, Benedikt Meurer wrote: ...
4 years, 2 months ago (2016-10-01 18:02:43 UTC) #34
Benedikt Meurer
Looks pretty good already, and tried it locally and the code looks pretty optimal now ...
4 years, 2 months ago (2016-10-01 18:18:31 UTC) #35
Benedikt Meurer
Please go into some detail in the CL description :-)
4 years, 2 months ago (2016-10-04 09:28:46 UTC) #37
Benedikt Meurer
LGTM from my side (once CL description is more detailed). Thanks a lot!
4 years, 2 months ago (2016-10-04 09:54:00 UTC) #40
caitp
On 2016/10/04 09:54:00, Benedikt Meurer wrote: > LGTM from my side (once CL description is ...
4 years, 2 months ago (2016-10-04 10:00:01 UTC) #41
Benedikt Meurer
Michael will do a review. It's fine if you don't land it today, we're not ...
4 years, 2 months ago (2016-10-04 10:13:48 UTC) #45
mvstanton
Really nice! One nit to fix then LGTM. https://codereview.chromium.org/2373983004/diff/190001/src/compiler/effect-control-linearizer.cc File src/compiler/effect-control-linearizer.cc (right): https://codereview.chromium.org/2373983004/diff/190001/src/compiler/effect-control-linearizer.cc#newcode2712 src/compiler/effect-control-linearizer.cc:2712: break; ...
4 years, 2 months ago (2016-10-05 07:58:52 UTC) #48
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/2373983004/210001
4 years, 2 months ago (2016-10-05 13:09:32 UTC) #55
caitp
https://codereview.chromium.org/2373983004/diff/190001/src/compiler/effect-control-linearizer.cc File src/compiler/effect-control-linearizer.cc (right): https://codereview.chromium.org/2373983004/diff/190001/src/compiler/effect-control-linearizer.cc#newcode2712 src/compiler/effect-control-linearizer.cc:2712: break; On 2016/10/05 07:58:52, mvstanton wrote: > Remove extra ...
4 years, 2 months ago (2016-10-05 13:09:55 UTC) #56
commit-bot: I haz the power
Committed patchset #12 (id:210001)
4 years, 2 months ago (2016-10-05 13:12:32 UTC) #58
commit-bot: I haz the power
Patchset 12 (id:??) landed as https://crrev.com/aed32e0f22353527993de8bceaf246fc744558f5 Cr-Commit-Position: refs/heads/master@{#39994}
4 years, 2 months ago (2016-10-05 13:12:55 UTC) #60
Michael Achenbach
A revert of this CL (patchset #12 id:210001) has been created in https://codereview.chromium.org/2397753003/ by machenbach@chromium.org. ...
4 years, 2 months ago (2016-10-05 14:29:22 UTC) #61
caitp
On 2016/10/05 14:29:22, machenbach (slow) wrote: > A revert of this CL (patchset #12 id:210001) ...
4 years, 2 months ago (2016-10-05 17:47:24 UTC) #62
Michael Achenbach
4 years, 2 months ago (2016-10-05 18:03:15 UTC) #63
Message was sent while issue was closed.
On 2016/10/05 17:47:24, caitp wrote:
> On 2016/10/05 14:29:22, machenbach (slow) wrote:
> > A revert of this CL (patchset #12 id:210001) has been created in
> > https://codereview.chromium.org/2397753003/ by
mailto:machenbach@chromium.org.
> > 
> > The reason for reverting is: [Sheriff] Speculative revert for win dbg:
> >
>
https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds...
> > 
> > Or we have an infra problem. Manual build before seems fine:
> >
>
https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds....
> 
> The Win32 Debug failiures appear to be unrelated to this CL. A reland CL is up
> at https://codereview.chromium.org/2394823003

Yes. We seem to have an incremental build problem. Just re land. Sorry...

Powered by Google App Engine
This is Rietveld 408576698