• 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
Name
Last commit
Last update
..
DEPS Loading commit data...
OWNERS Loading commit data...
maglev-basic-block.h Loading commit data...
maglev-code-gen-state.h Loading commit data...
maglev-code-generator.cc Loading commit data...
maglev-code-generator.h Loading commit data...
maglev-compilation-data.cc Loading commit data...
maglev-compilation-data.h Loading commit data...
maglev-compiler.cc Loading commit data...
maglev-compiler.h Loading commit data...
maglev-graph-builder.cc Loading commit data...
maglev-graph-builder.h Loading commit data...
maglev-graph-labeller.h Loading commit data...
maglev-graph-printer.cc Loading commit data...
maglev-graph-printer.h Loading commit data...
maglev-graph-processor.h Loading commit data...
maglev-graph.h Loading commit data...
maglev-interpreter-frame-state.h Loading commit data...
maglev-ir.cc Loading commit data...
maglev-ir.h Loading commit data...
maglev-regalloc-data.h Loading commit data...
maglev-regalloc.cc Loading commit data...
maglev-regalloc.h Loading commit data...
maglev-register-frame-array.h Loading commit data...
maglev-vreg-allocator.h Loading commit data...
maglev.cc Loading commit data...
maglev.h Loading commit data...