• Leszek Swirski's avatar
    [maglev] Spill values when freeing a register at-end · 0ec8f227
    Leszek Swirski authored
    DropRegisterAtEnd is used to free a register, to make space for the
    result of a node. Normally this frees up an input that is dead at the
    end of the node's lifetime, but under high local variable pressure, we
    might not have a dead value to drop.
    
    In these cases we have to spill a register through the normal spilling
    mechanism. Additionally, allow freeing up a blocked free register (i.e.
    a temporary) if this is possible.
    
    Bug: v8:7700
    Change-Id: I0099751918cf5cb65c2a09337a3f080eb2c4dd14
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3769833Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81804}
    0ec8f227
maglev-regalloc.cc 58.5 KB