• rmcilroy's avatar
    [Interpreter] Replace BytecodeRegisterAllocator with a simple bump pointer. · 27fe988b
    rmcilroy authored
    There are only a few occasions where we allocate a register in an outer
    expression allocation scope, which makes the costly free-list approach
    of the BytecodeRegisterAllocator unecessary. This CL replaces all
    occurrences with moves to the accumulator and stores to a register
    allocated in the correct scope. By doing this, we can simplify the
    BytecodeRegisterAllocator to be a simple bump-pointer allocator
    with registers released in the same order as allocated.
    
    The following changes are also made:
     - Make BytecodeRegisterOptimizer able to use registers which have been
       unallocated, but not yet reused
     - Remove RegisterExpressionResultScope and rename
       AccumulatorExpressionResultScope to ValueExpressionResultScope
     - Introduce RegisterList to represent consecutive register
       allocations, and use this for operands to call bytecodes.
    
    By avoiding the free-list handling, this gives another couple of
    percent on CodeLoad.
    
    BUG=v8:4280
    
    Review-Url: https://codereview.chromium.org/2369873002
    Cr-Commit-Position: refs/heads/master@{#39905}
    27fe988b
Name
Last commit
Last update
..
bytecode-array-builder-unittest.cc Loading commit data...
bytecode-array-iterator-unittest.cc Loading commit data...
bytecode-array-writer-unittest.cc Loading commit data...
bytecode-dead-code-optimizer-unittest.cc Loading commit data...
bytecode-decoder-unittest.cc Loading commit data...
bytecode-peephole-optimizer-unittest.cc Loading commit data...
bytecode-pipeline-unittest.cc Loading commit data...
bytecode-register-allocator-unittest.cc Loading commit data...
bytecode-register-optimizer-unittest.cc Loading commit data...
bytecode-utils.h Loading commit data...
bytecodes-unittest.cc Loading commit data...
constant-array-builder-unittest.cc Loading commit data...
interpreter-assembler-unittest.cc Loading commit data...
interpreter-assembler-unittest.h Loading commit data...