DescriptionInline Array.prototype.forEach in TurboFan
This CL contains a few pieces:
- A new mechanism to create "BuiltinContinuation" checkpoints in TurboFan
graphs, which--when triggered--swizzle the values in the the FrameState to be
parameters to a typically TF-generated builtin that resumes execution to finish
the slow-case functionality.
- Continuation builtins that have special handling in the deoptimizer and their own
new frame type to ensure that the values they need to begin executing can be stashed
away and restored immediately before the builtin is called via a trampoline that runs
when the continuation builtin's frame execution resumes.
- An implementation of Array.prototype.forEach in TurboFan that can be used to
inline it. The inlined forEach implementation uses the checkpoints mechanism
described above to deopt in the middle of the forEach in the cases that optimization
invariants are violated. There is a slightly different continuation stub for each
deopt point in the forEach implementation to ensure the correct side-effects, i.e.
that the deopt of the builtin isn't programmatically observable.
Review-Url: https://codereview.chromium.org/2803853005
Cr-Commit-Position: refs/heads/master@{#45764}
Committed: https://chromium.googlesource.com/v8/v8/+/90c3a2d54b956d06ace2c97c6bfdb10ea9cb8e58
Patch Set 1 #Patch Set 2 : Checkpoint #Patch Set 3 : Fix format #Patch Set 4 : Tweaks #Patch Set 5 : Add comments #
Total comments: 6
Patch Set 6 : Review feedback #
Total comments: 4
Patch Set 7 : Cleanup #
Total comments: 8
Patch Set 8 : Remove stray changes #Patch Set 9 : Checkpoint #Patch Set 10 : MIPS ports #Patch Set 11 : MIPS ports #Patch Set 12 : Fix windows build #Patch Set 13 : fix v8heapconst.py #
Total comments: 46
Patch Set 14 : Address reviewer feedback #Patch Set 15 : Merge with ToT #Patch Set 16 : Fix stack traces #Patch Set 17 : Merge with ToT #Patch Set 18 : Fix tests #Patch Set 19 : Remove stray changes #
Total comments: 6
Patch Set 20 : Review feedback and fix test cases #
Total comments: 8
Patch Set 21 : Review feedback #Patch Set 22 : Disable new array builtins by default #
Messages
Total messages: 70 (53 generated)
|