• jarin's avatar
    This is a first step towards reducing the number of stores/loads when... · f0645612
    jarin authored
    This is a first step towards reducing the number of stores/loads when suspending/resuming a generator.
    
    Unfortunately, even for an empty generator, we still use 8 register for various things (try-finally, copies of generator object, parser-introduced temporaries). I will try to get rid of these in separate CLs.
    
    Changes:
    
    - SuspendGenerator bytecode now takes register list to save.
    - ResumeGenerator was split into two bytecodes:
      * Resume generator reads the state out and marks the generator as
          'executing'.
      * RestoreGeneratorRegisters reloads the registers from
          the generator.
        + this required adding support for output register list.
    
    - Introduced generator_object_ register in the bytecode generator.
      * in subsequent CLs, I will make better use of it, the goal is
          to get rid if the .generator_object local variable.
    
    - Taught register optimizer to flush unassigned registers.
    
    BUG=v8:6379
    
    Review-Url: https://codereview.chromium.org/2894293003
    Cr-Commit-Position: refs/heads/master@{#45675}
    f0645612
Name
Last commit
Last update
..
OWNERS Loading commit data...
bytecode-array-accessor.cc Loading commit data...
bytecode-array-accessor.h Loading commit data...
bytecode-array-builder.cc Loading commit data...
bytecode-array-builder.h Loading commit data...
bytecode-array-iterator.cc Loading commit data...
bytecode-array-iterator.h Loading commit data...
bytecode-array-random-iterator.cc Loading commit data...
bytecode-array-random-iterator.h Loading commit data...
bytecode-array-writer.cc Loading commit data...
bytecode-array-writer.h Loading commit data...
bytecode-decoder.cc Loading commit data...
bytecode-decoder.h Loading commit data...
bytecode-flags.cc Loading commit data...
bytecode-flags.h Loading commit data...
bytecode-generator.cc Loading commit data...
bytecode-generator.h Loading commit data...
bytecode-jump-table.h Loading commit data...
bytecode-label.cc Loading commit data...
bytecode-label.h Loading commit data...
bytecode-node.cc Loading commit data...
bytecode-node.h Loading commit data...
bytecode-operands.cc Loading commit data...
bytecode-operands.h Loading commit data...
bytecode-register-allocator.h Loading commit data...
bytecode-register-optimizer.cc Loading commit data...
bytecode-register-optimizer.h Loading commit data...
bytecode-register.cc Loading commit data...
bytecode-register.h Loading commit data...
bytecode-source-info.cc Loading commit data...
bytecode-source-info.h Loading commit data...
bytecode-traits.h Loading commit data...
bytecodes.cc Loading commit data...
bytecodes.h Loading commit data...
constant-array-builder.cc Loading commit data...
constant-array-builder.h Loading commit data...
control-flow-builders.cc Loading commit data...
control-flow-builders.h Loading commit data...
handler-table-builder.cc Loading commit data...
handler-table-builder.h Loading commit data...
interpreter-assembler.cc Loading commit data...
interpreter-assembler.h Loading commit data...
interpreter-generator.cc Loading commit data...
interpreter-generator.h Loading commit data...
interpreter-intrinsics-generator.cc Loading commit data...
interpreter-intrinsics-generator.h Loading commit data...
interpreter-intrinsics.cc Loading commit data...
interpreter-intrinsics.h Loading commit data...
interpreter.cc Loading commit data...
interpreter.h Loading commit data...
setup-interpreter-internal.cc Loading commit data...
setup-interpreter.h Loading commit data...