• Leszek Swirski's avatar
    [maglev] Remove LiveNodeInfo, store its data directly on ValueNode · 3fd2428c
    Leszek Swirski authored
    LiveNodeInfo was stored in a Node->LiveNodeInfo map, which was never
    copied or merged alongside control flow. Lookups in this map were a bit
    part of register allocation time, and it was mostly duplicating data
    that was already in the ValueNode.
    
    So, instead of a separate LiveNodeInfo, store the current register
    allocation state directly on the ValueNode. This involves a bit of
    clobbering of state (in particular, we have to clobber the next_use id),
    but that doesn't matter since regalloc is a forward pass and with this
    change, it's less memory and zero map lookups.
    
    Measuring on a (very large) function, this reduces compile time from
    300ms to 200ms.
    
    Bug: v8:7700
    Change-Id: I02620f1a795bd308d1de03d694c102cb5ea3ff50
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3500617Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#79339}
    3fd2428c
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...