• Leszek Swirski's avatar
    [maglev] Add safepoints for deferred calls · 8103fe57
    Leszek Swirski authored
    Add a concept of "register snapshots" which snapshot the end-state
    of the register allocation for a node (i.e. the state of the register
    allocation when the node's code completes). These can be requested by
    nodes, so that they know which registers need to be kept alive by the
    node, and which of those are tagged.
    
    Nodes can then use this information to temporarily spill registers
    across a deferred call, without requiring the register allocator to
    spill them unconditionally on the non-deferred path. The maglev
    safepoint table has support for these additional spilled registers.
    
    Bug: v8:7700
    Change-Id: Id0052b5da86dd263f9019b1433fe5994a472a5b1
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3751203
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81614}
    8103fe57
maglev-regalloc.cc 58.2 KB