• 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
..
bytecode-array-builder-unittest.cc Loading commit data...
bytecode-array-iterator-unittest.cc Loading commit data...
bytecode-array-random-iterator-unittest.cc Loading commit data...
bytecode-array-writer-unittest.cc Loading commit data...
bytecode-decoder-unittest.cc Loading commit data...
bytecode-node-unittest.cc Loading commit data...
bytecode-operands-unittest.cc Loading commit data...
bytecode-register-allocator-unittest.cc Loading commit data...
bytecode-register-optimizer-unittest.cc Loading commit data...
bytecode-source-info-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...