• Leszek Swirski's avatar
    [maglev] Use free list for iterating used registers · 0504331b
    Leszek Swirski authored
    Don't rely on register_values[index] == nullptr for checking if a
    register is free, but instead re-use the free register list, and iterate
    the allocatable_register & ~free_register list when iterating used
    registers.
    
    This also changes the indexing of register_values to be by register
    code, not allocatable register index. The register state stored on the
    InterpreterFrameState, however, stays compact (allocatable register
    count). A new wrapper class + iterator keeps iteration over it and the
    register_values array in sync.
    
    Bug: v8:7700
    Change-Id: I7815aa2d4a1f7b7ebafaaafe0727219adcc4dcfe
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3512792
    Auto-Submit: Leszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
    Commit-Queue: Toon Verwaest <verwaest@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79434}
    0504331b
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-concurrent-dispatcher.cc Loading commit data...
maglev-concurrent-dispatcher.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...