• Leszek Swirski's avatar
    [maglev] Skip to the end of bytecode blocks on eager deopt · 58a7761b
    Leszek Swirski authored
    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: 's avatarJakob Linke <jgruber@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79952}
    58a7761b
maglev-ir.h 52.5 KB