[maglev] Skip to the end of bytecode blocks on eager deopt
Unconditional eager deopts from lack of feedback (née soft deopts) mean that the remainder of the basic block is dead. Avoid emitting this code by fast forwarding the iterator until the next merge. The EagerDeopt node becomes a Deopt control node which terminates its own block (this is to avoid spurious control flow after the EagerDeopt, or weirdness with liveness). A concept of "merging dead blocks" has to be introduced so that the successors of the killed block still have the right number of predecessors. Bug: v8:7700 Change-Id: Id9c442c3b18d3f394dc2411604d0c8503d6aaae2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3578647Reviewed-by: Jakob Linke <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79952}
Showing
Please
register
or
sign in
to comment