• Leszek Swirski's avatar
    [maglev] Add lazy deopts · 0df9606d
    Leszek Swirski authored
    Nodes can now hold a LazyDeoptSafepoint which stores the frame state in
    case they trigger a lazy deopt. OpProperties have a new CanLazyDeopt
    bit, and codegen emits a safepoint table entry + lazy deopt for all
    nodes with this bit. Also, we now check the deoptimized code bit on
    entry into the maglev compiled function.
    
    An example use of these lazy deopts is added as a PropertyCell fast path
    for LdaGlobal, which adds a code dependency on the property cell.
    
    Bug: v8:7700
    Change-Id: I663db38dfa7325d38fc6d5f079d263a958074e36
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3557251Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79688}
    0df9606d
maglev-regalloc.cc 32.6 KB