|
|
Created:
4 years, 9 months ago by Stefano Sanfilippo Modified:
4 years, 9 months ago Reviewers:
rmcilroy CC:
v8-reviews_googlegroups.com, oth Base URL:
https://chromium.googlesource.com/v8/v8.git@master Target Ref:
refs/pending/heads/master Project:
v8 Visibility:
Public. |
Description[Interpreter] Fix incorrect tail call code generated when using Abort.
Previous to this change, the dummy Return inside
InterpreterAssembler::Abort caused TurboFan to emit incorrect code for
handlers that made use of this call. The stack pointer would not be
incremented before tail calling into the next handler, causing it to
push on top on the caller's frame instead of overwriting it.
BUG=v8:4280
LOG=N
Committed: https://crrev.com/a4afba532a33a31a5e5864a4517a44f321867e72
Cr-Commit-Position: refs/heads/master@{#34950}
Patch Set 1 #
Dependent Patchsets: Messages
Total messages: 21 (12 generated)
ssanfilippo@chromium.org changed reviewers: + rmcilroy@chromium.org
Description was changed from ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside the InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame, instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect dispatch tail call code generated when using Abort. Previous to this change, the dummy Return inside the InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame, instead of overwriting it. BUG=v8:4280 LOG=N ==========
LGTM, thanks! Enrico, could you let us know if this fixes your issue with the intrinsic CL?
On 2016/03/21 12:43:55, rmcilroy wrote: > LGTM, thanks! Enrico, could you let us know if this fixes your issue with the > intrinsic CL? Technically it does, provided that I add 'Goto' after 'Abort' and still bind the CodeStubAssembler::Variable I use in it to some value. But yeah, it does look ugly and it's potentially messy.
On 2016/03/21 13:06:42, epertoso wrote: > On 2016/03/21 12:43:55, rmcilroy wrote: > > LGTM, thanks! Enrico, could you let us know if this fixes your issue with the > > intrinsic CL? > > Technically it does, provided that I add 'Goto' after 'Abort' and still bind the > CodeStubAssembler::Variable I use in it to some value. > > But yeah, it does look ugly and it's potentially messy. This is necessary due to TF requiring the input in Split Edge form. I tried to add a "fallthrough" operation to the RMA but Michi vetoed it, so we need to do this every time we have a branch (you would have needed to do this previously for all branches, you were only saved it for Abort due to the incorrect "return" in the Abort code).
The CQ bit was checked by ssanfilippo@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1819853002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1819853002/1
Description was changed from ========== [Interpreter] Fix incorrect dispatch tail call code generated when using Abort. Previous to this change, the dummy Return inside the InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame, instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect dispatch tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== [Interpreter] Fix incorrect dispatch tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ==========
Description was changed from ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of it. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ==========
Description was changed from ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of it. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ==========
Description was changed from ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ==========
The CQ bit was checked by ssanfilippo@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1819853002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1819853002/1
Message was sent while issue was closed.
Description was changed from ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ==========
Message was sent while issue was closed.
Committed patchset #1 (id:1)
Message was sent while issue was closed.
Description was changed from ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N ========== to ========== [Interpreter] Fix incorrect tail call code generated when using Abort. Previous to this change, the dummy Return inside InterpreterAssembler::Abort caused TurboFan to emit incorrect code for handlers that made use of this call. The stack pointer would not be incremented before tail calling into the next handler, causing it to push on top on the caller's frame instead of overwriting it. BUG=v8:4280 LOG=N Committed: https://crrev.com/a4afba532a33a31a5e5864a4517a44f321867e72 Cr-Commit-Position: refs/heads/master@{#34950} ==========
Message was sent while issue was closed.
Patchset 1 (id:??) landed as https://crrev.com/a4afba532a33a31a5e5864a4517a44f321867e72 Cr-Commit-Position: refs/heads/master@{#34950} |