• Toon Verwaest's avatar
    [maglev] Keep an array of free registers and a vector of stack slots · 785fc6bd
    Toon Verwaest authored
    Instead of scanning the array of registers, keep an explicit list of
    free registers. Stack slots are equally changed to use an std::vector of
    free slots instead of a linked list. Now we only need to scan
    - the list of free registers when we want to allocate a specific
      register,
    - and scan the list of allocated registers to see if the free value is
      already in a different register,
    - scan the list of allocated registers to free some register if we don't
      have enough registers (for input, output, or temp).
    
    Bug: v8:7700
    Change-Id: Iff41b06aae656b59e4ed25e9066671a21660a73e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3489487Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
    Commit-Queue: Toon Verwaest <verwaest@chromium.org>
    Auto-Submit: Toon Verwaest <verwaest@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79278}
    785fc6bd
maglev-regalloc.cc 35.8 KB