v8/test/cctest/interpreter/bytecode_expectations/Generators.golden

572 lines
21 KiB
Plaintext
Raw Normal View History

#
# Autogenerated by generate-bytecode-expectations.
#
---
wrap: no
test function name: f
---
snippet: "
function* f() { }
f();
"
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
frame size: 12
parameter count: 1
bytecode array length: 177
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(2),
B(ResumeGenerator), R(new_target),
B(Star), R(1),
B(SwitchOnSmiNoFeedback), U8(0), U8(1), I8(0),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(CreateFunctionContext), U8(1),
B(PushContext), R(0),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(5),
Reland of Thread maybe-assigned through the bytecodes. (patchset #1 id:1 of https://codereview.chromium.org/2680923003/ ) Reason for revert: False alarm, bot hiccup Original issue's description: > Revert of Thread maybe-assigned through the bytecodes. (patchset #5 id:80001 of https://codereview.chromium.org/2655733003/ ) > > Reason for revert: > needed for properly reverting https://chromium.googlesource.com/v8/v8/+/f3ae5ccf57690d8c2d87c4fe1d10b103ad6a4ab3 > > Original issue's description: > > Thread maybe-assigned through the bytecodes. > > > > This introduces LoadImmutableContextSlot and LoadImmutableCurrentContextSlot > > bytecodes, which are emitted when reading from never-assigned context slot. > > > > There is a subtlety here: the slot are not immutable, the meaning is > > actually undefined-or-hole-or-immutable. > > > > Review-Url: https://codereview.chromium.org/2655733003 > > Cr-Commit-Position: refs/heads/master@{#43000} > > Committed: https://chromium.googlesource.com/v8/v8/+/17c2dd388697da626224c371c8181d20d2016d82 > > TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Review-Url: https://codereview.chromium.org/2680923003 > Cr-Commit-Position: refs/heads/master@{#43011} > Committed: https://chromium.googlesource.com/v8/v8/+/ece4e54a31ac76ee9c450270d65270562db716e1 TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2679953003 Cr-Commit-Position: refs/heads/master@{#43012}
2017-02-07 20:42:03 +00:00
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
/* 11 E> */ B(SuspendGenerator), R(7), U8(0),
B(Ldar), R(6),
/* 16 S> */ B(Return),
B(LdaSmi), I8(-2),
B(Star), R(1),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(8),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(Star), R(9),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(19),
B(LdaTrue),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(11),
B(Mov), R(8), R(10),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2),
B(Star), R(4),
B(LdaZero),
B(Star), R(3),
B(Jump), U8(34),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Ldar), R(8),
/* 11 E> */ B(Throw),
B(LdaUndefined),
B(Star), R(6),
B(LdaTrue),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(4),
B(LdaZero),
B(Star), R(3),
B(Jump), U8(14),
B(LdaSmi), I8(-1),
B(Star), R(3),
B(Jump), U8(8),
B(Star), R(4),
B(LdaSmi), I8(1),
B(Star), R(3),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(6), U8(1),
B(Ldar), R(5),
B(SetPendingMessage),
B(Ldar), R(3),
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(4),
/* 16 S> */ B(Return),
B(Ldar), R(4),
B(ReThrow),
B(LdaUndefined),
/* 16 S> */ B(Return),
]
constant pool: [
Smi [52],
Smi [6],
Smi [9],
]
handlers: [
[52, 133, 139],
]
---
snippet: "
function* f() { yield 42 }
f();
"
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
frame size: 12
parameter count: 1
bytecode array length: 251
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(2),
B(ResumeGenerator), R(new_target),
B(Star), R(1),
B(SwitchOnSmiNoFeedback), U8(0), U8(2), I8(0),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(CreateFunctionContext), U8(1),
B(PushContext), R(0),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(5),
Reland of Thread maybe-assigned through the bytecodes. (patchset #1 id:1 of https://codereview.chromium.org/2680923003/ ) Reason for revert: False alarm, bot hiccup Original issue's description: > Revert of Thread maybe-assigned through the bytecodes. (patchset #5 id:80001 of https://codereview.chromium.org/2655733003/ ) > > Reason for revert: > needed for properly reverting https://chromium.googlesource.com/v8/v8/+/f3ae5ccf57690d8c2d87c4fe1d10b103ad6a4ab3 > > Original issue's description: > > Thread maybe-assigned through the bytecodes. > > > > This introduces LoadImmutableContextSlot and LoadImmutableCurrentContextSlot > > bytecodes, which are emitted when reading from never-assigned context slot. > > > > There is a subtlety here: the slot are not immutable, the meaning is > > actually undefined-or-hole-or-immutable. > > > > Review-Url: https://codereview.chromium.org/2655733003 > > Cr-Commit-Position: refs/heads/master@{#43000} > > Committed: https://chromium.googlesource.com/v8/v8/+/17c2dd388697da626224c371c8181d20d2016d82 > > TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Review-Url: https://codereview.chromium.org/2680923003 > Cr-Commit-Position: refs/heads/master@{#43011} > Committed: https://chromium.googlesource.com/v8/v8/+/ece4e54a31ac76ee9c450270d65270562db716e1 TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2679953003 Cr-Commit-Position: refs/heads/master@{#43012}
2017-02-07 20:42:03 +00:00
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
/* 11 E> */ B(SuspendGenerator), R(7), U8(0),
B(Ldar), R(6),
/* 25 S> */ B(Return),
B(LdaSmi), I8(-2),
B(Star), R(1),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(8),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(Star), R(9),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(19),
B(LdaTrue),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(11),
B(Mov), R(8), R(10),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2),
B(Star), R(4),
B(LdaZero),
B(Star), R(3),
B(Jump), U8(108),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Ldar), R(8),
/* 11 E> */ B(Throw),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
/* 16 S> */ B(LdaSmi), I8(42),
B(Star), R(6),
B(LdaFalse),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(LdaSmi), I8(1),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(SuspendGenerator), R(7), U8(0),
B(Ldar), R(6),
/* 25 S> */ B(Return),
B(LdaSmi), I8(-2),
B(Star), R(1),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(8),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(Star), R(9),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(19),
B(LdaTrue),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(11),
B(Mov), R(8), R(10),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2),
B(Star), R(4),
B(LdaZero),
B(Star), R(3),
B(Jump), U8(34),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Ldar), R(8),
/* 16 E> */ B(Throw),
B(LdaUndefined),
B(Star), R(6),
B(LdaTrue),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(4),
B(LdaZero),
B(Star), R(3),
B(Jump), U8(14),
B(LdaSmi), I8(-1),
B(Star), R(3),
B(Jump), U8(8),
B(Star), R(4),
B(LdaSmi), I8(1),
B(Star), R(3),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(6), U8(1),
B(Ldar), R(5),
B(SetPendingMessage),
B(Ldar), R(3),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(4),
/* 25 S> */ B(Return),
B(Ldar), R(4),
B(ReThrow),
B(LdaUndefined),
/* 25 S> */ B(Return),
]
constant pool: [
Smi [52],
Smi [126],
Smi [6],
Smi [9],
]
handlers: [
[52, 207, 213],
]
---
snippet: "
function* f() { for (let x of [42]) yield x }
f();
"
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
frame size: 18
parameter count: 1
bytecode array length: 697
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(4),
B(ResumeGenerator), R(new_target),
B(Star), R(3),
B(SwitchOnSmiNoFeedback), U8(0), U8(2), I8(0),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(3),
B(CreateFunctionContext), U8(8),
B(PushContext), R(0),
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(7),
Reland of Thread maybe-assigned through the bytecodes. (patchset #1 id:1 of https://codereview.chromium.org/2680923003/ ) Reason for revert: False alarm, bot hiccup Original issue's description: > Revert of Thread maybe-assigned through the bytecodes. (patchset #5 id:80001 of https://codereview.chromium.org/2655733003/ ) > > Reason for revert: > needed for properly reverting https://chromium.googlesource.com/v8/v8/+/f3ae5ccf57690d8c2d87c4fe1d10b103ad6a4ab3 > > Original issue's description: > > Thread maybe-assigned through the bytecodes. > > > > This introduces LoadImmutableContextSlot and LoadImmutableCurrentContextSlot > > bytecodes, which are emitted when reading from never-assigned context slot. > > > > There is a subtlety here: the slot are not immutable, the meaning is > > actually undefined-or-hole-or-immutable. > > > > Review-Url: https://codereview.chromium.org/2655733003 > > Cr-Commit-Position: refs/heads/master@{#43000} > > Committed: https://chromium.googlesource.com/v8/v8/+/17c2dd388697da626224c371c8181d20d2016d82 > > TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Review-Url: https://codereview.chromium.org/2680923003 > Cr-Commit-Position: refs/heads/master@{#43011} > Committed: https://chromium.googlesource.com/v8/v8/+/ece4e54a31ac76ee9c450270d65270562db716e1 TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2679953003 Cr-Commit-Position: refs/heads/master@{#43012}
2017-02-07 20:42:03 +00:00
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
/* 11 E> */ B(SuspendGenerator), R(9), U8(0),
B(Ldar), R(8),
/* 44 S> */ B(Return),
B(LdaSmi), I8(-2),
B(Star), R(3),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(19),
B(LdaTrue),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(13),
B(Mov), R(10), R(12),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(6),
B(LdaZero),
B(Star), R(5),
B(JumpConstant), U8(17),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Ldar), R(10),
/* 11 E> */ B(Throw),
B(Ldar), R(closure),
B(CreateBlockContext), U8(2),
B(PushContext), R(1),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(StaContextSlot), R(1), U8(8), U8(0),
B(Mov), R(context), R(10),
B(Mov), R(context), R(11),
/* 30 S> */ B(CreateArrayLiteral), U8(3), U8(3), U8(17),
[ignition] desugar GetIterator() via bytecode rather than via AST Introduces: - a new AST node representing the GetIterator() algorithm in the specification, to be used by ForOfStatement, YieldExpression (in the case of delegating yield*), and the future `for-await-of` loop proposed in http://tc39.github.io/proposal-async-iteration/#sec-async-iterator-value-unwrap-functions. - a new opcode (JumpIfJSReceiver), which is useful for `if Type(object) is not Object` checks which are common throughout the specification. This node is easily eliminated by TurboFan. The AST node is desugared specially in bytecode, rather than manually when building the AST. The benefit of this is that desugaring in the BytecodeGenerator is much simpler and easier to understand than desugaring the AST. This also reduces parse time very slightly, and allows us to use LoadIC rather than KeyedLoadIC, which seems to have better baseline performance. This results in a ~20% improvement in test/js-perf-test/Iterators micro-benchmarks, which I believe owes to the use of the slightly faster LoadIC as opposed to the KeyedLoadIC in the baseline case. Both produce identical optimized code via TurboFan when the type check can be eliminated, and the load can be replaced with a constant value. BUG=v8:4280 R=bmeurer@chromium.org, rmcilroy@chromium.org, adamk@chromium.org, neis@chromium.org, jarin@chromium.org TBR=rossberg@chromium.org Review-Url: https://codereview.chromium.org/2557593004 Cr-Commit-Position: refs/heads/master@{#41555}
2016-12-07 15:19:52 +00:00
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(4), U8(4),
B(Star), R(13),
B(CallProperty0), R(13), R(12), U8(6),
[ignition] desugar GetIterator() via bytecode rather than via AST Introduces: - a new AST node representing the GetIterator() algorithm in the specification, to be used by ForOfStatement, YieldExpression (in the case of delegating yield*), and the future `for-await-of` loop proposed in http://tc39.github.io/proposal-async-iteration/#sec-async-iterator-value-unwrap-functions. - a new opcode (JumpIfJSReceiver), which is useful for `if Type(object) is not Object` checks which are common throughout the specification. This node is easily eliminated by TurboFan. The AST node is desugared specially in bytecode, rather than manually when building the AST. The benefit of this is that desugaring in the BytecodeGenerator is much simpler and easier to understand than desugaring the AST. This also reduces parse time very slightly, and allows us to use LoadIC rather than KeyedLoadIC, which seems to have better baseline performance. This results in a ~20% improvement in test/js-perf-test/Iterators micro-benchmarks, which I believe owes to the use of the slightly faster LoadIC as opposed to the KeyedLoadIC in the baseline case. Both produce identical optimized code via TurboFan when the type check can be eliminated, and the load can be replaced with a constant value. BUG=v8:4280 R=bmeurer@chromium.org, rmcilroy@chromium.org, adamk@chromium.org, neis@chromium.org, jarin@chromium.org TBR=rossberg@chromium.org Review-Url: https://codereview.chromium.org/2557593004 Cr-Commit-Position: refs/heads/master@{#41555}
2016-12-07 15:19:52 +00:00
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
/* 30 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
B(Ldar), R(3),
B(SwitchOnSmiNoFeedback), U8(5), U8(1), I8(1),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(11),
B(LdaSmi), I8(79),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
/* 27 S> */ B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(6), U8(10),
B(Star), R(12),
/* 27 E> */ B(CallProperty0), R(12), R(13), U8(8),
/* 27 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(7), U8(12),
B(JumpIfToBooleanTrue), U8(144),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(8), U8(14),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
/* 16 E> */ B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(9),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(5), U8(0),
B(StaCurrentContextSlot), U8(4),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
/* 36 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
B(LdaFalse),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(12),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13),
B(LdaSmi), I8(1),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(SuspendGenerator), R(13), U8(0),
B(Ldar), R(12),
/* 44 S> */ B(Return),
B(LdaSmi), I8(-2),
B(Star), R(3),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15),
B(LdaZero),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(31),
B(LdaTrue),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Star), R(17),
B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(PopContext), R(2),
B(PopContext), R(2),
B(PopContext), R(2),
B(PopContext), R(2),
B(PopContext), R(2),
B(PopContext), R(2),
B(Star), R(9),
B(LdaZero),
B(Star), R(8),
B(Jump), U8(71),
Revert "[ignition] Be smarter about register allocation in VisitSuspend" This reverts commit 98927ea51b0cd9df2c010b6020bbea2a40d13cc9. Reason for revert: Breaks Mac GC Stress bot. https://uberchromegw.corp.google.com/i/client.v8/builders/V8%20Mac%20GC%20Stress/builds/13299/steps/Mjsunit/logs/for-await-of Original change's description: > [ignition] Be smarter about register allocation in VisitSuspend > > Split BytecodeGenerator::VisitSuspend into two pieces, one for > building the suspension code and one for resumption (these > are split into separate Build methods for convenience). > Each gets its own RegisterAllocationScope, which allows us to > reduce the register file size of the empty generator by 1. > > For consistency, rename VisitGeneratorPrologue() to > BuildGeneratorPrologue() to match the names of the two > newly-created methods. > > Bug: v8:6379 > Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032 > Reviewed-on: https://chromium-review.googlesource.com/503593 > Commit-Queue: Adam Klein <adamk@chromium.org> > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45318} TBR=rmcilroy@chromium.org,adamk@chromium.org,neis@chromium.org,kozyatinskiy@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Bug: v8:6379 Change-Id: I787fc3811c4f33a8021cf9170d43a74ed9b55d1c Reviewed-on: https://chromium-review.googlesource.com/506548 Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#45319}
2017-05-15 20:58:39 +00:00
B(Ldar), R(14),
/* 36 E> */ B(Throw),
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(8), U8(0),
B(JumpLoop), U8(212), I8(0),
B(Jump), U8(44),
B(Star), R(12),
B(Ldar), R(closure),
B(CreateCatchContext), R(12), U8(10), U8(11),
B(PushContext), R(2),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(LdaSmi), I8(2),
B(TestEqualStrict), R(12), U8(16),
B(JumpIfFalse), U8(8),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(8), U8(0),
Reland of Thread maybe-assigned through the bytecodes. (patchset #1 id:1 of https://codereview.chromium.org/2680923003/ ) Reason for revert: False alarm, bot hiccup Original issue's description: > Revert of Thread maybe-assigned through the bytecodes. (patchset #5 id:80001 of https://codereview.chromium.org/2655733003/ ) > > Reason for revert: > needed for properly reverting https://chromium.googlesource.com/v8/v8/+/f3ae5ccf57690d8c2d87c4fe1d10b103ad6a4ab3 > > Original issue's description: > > Thread maybe-assigned through the bytecodes. > > > > This introduces LoadImmutableContextSlot and LoadImmutableCurrentContextSlot > > bytecodes, which are emitted when reading from never-assigned context slot. > > > > There is a subtlety here: the slot are not immutable, the meaning is > > actually undefined-or-hole-or-immutable. > > > > Review-Url: https://codereview.chromium.org/2655733003 > > Cr-Commit-Position: refs/heads/master@{#43000} > > Committed: https://chromium.googlesource.com/v8/v8/+/17c2dd388697da626224c371c8181d20d2016d82 > > TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > > Review-Url: https://codereview.chromium.org/2680923003 > Cr-Commit-Position: refs/heads/master@{#43011} > Committed: https://chromium.googlesource.com/v8/v8/+/ece4e54a31ac76ee9c450270d65270562db716e1 TBR=rmcilroy@chromium.org,bmeurer@chromium.org,neis@chromium.org,jarin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2679953003 Cr-Commit-Position: refs/heads/master@{#43012}
2017-02-07 20:42:03 +00:00
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
B(PopContext), R(2),
B(LdaSmi), I8(-1),
B(Star), R(8),
B(Jump), U8(8),
B(Star), R(9),
B(LdaSmi), I8(1),
B(Star), R(8),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(10),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(11),
B(LdaZero),
B(TestEqualStrict), R(11), U8(17),
B(JumpIfTrue), U8(150),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(11),
B(LdaNamedProperty), R(11), U8(12), U8(18),
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(127),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(11),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(11), U8(21),
B(JumpIfFalse), U8(69),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
B(Wide), B(LdaSmi), I16(130),
B(Star), R(11),
B(LdaConstant), U8(13),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
B(Throw),
B(Mov), R(context), R(11),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
B(Jump), U8(20),
B(Star), R(12),
B(Ldar), R(closure),
B(CreateCatchContext), R(12), U8(10), U8(14),
B(Star), R(11),
B(LdaTheHole),
B(SetPendingMessage),
B(Ldar), R(11),
B(PushContext), R(2),
B(PopContext), R(2),
B(Jump), U8(47),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(13),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(11),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(10),
B(SetPendingMessage),
B(Ldar), R(8),
B(SwitchOnSmiNoFeedback), U8(15), U8(2), I8(0),
B(Jump), U8(27),
B(PopContext), R(1),
B(PopContext), R(1),
B(LdaZero),
B(Star), R(5),
B(Mov), R(9), R(6),
B(Jump), U8(46),
B(PopContext), R(1),
B(PopContext), R(1),
B(LdaSmi), I8(1),
B(Star), R(5),
B(Mov), R(9), R(6),
B(Jump), U8(33),
B(PopContext), R(1),
B(LdaUndefined),
B(Star), R(8),
B(LdaTrue),
B(Star), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
B(Star), R(6),
B(LdaZero),
B(Star), R(5),
B(Jump), U8(14),
B(LdaSmi), I8(-1),
B(Star), R(5),
B(Jump), U8(8),
B(Star), R(6),
B(LdaSmi), I8(1),
B(Star), R(5),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(7),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(8), U8(1),
B(Ldar), R(7),
B(SetPendingMessage),
B(Ldar), R(5),
B(SwitchOnSmiNoFeedback), U8(18), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(6),
/* 44 S> */ B(Return),
B(Ldar), R(6),
B(ReThrow),
B(LdaUndefined),
/* 44 S> */ B(Return),
]
constant pool: [
Smi [52],
Smi [148],
FIXED_ARRAY_TYPE,
TUPLE2_TYPE,
SYMBOL_TYPE,
Smi [142],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
FIXED_ARRAY_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
FIXED_ARRAY_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
FIXED_ARRAY_TYPE,
Smi [6],
Smi [18],
Smi [554],
Smi [6],
Smi [9],
]
handlers: [
[52, 653, 659],
[133, 422, 428],
[136, 378, 380],
[515, 531, 533],
]