1. 02 Jun, 2017 1 commit
    • 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
  2. 15 May, 2017 1 commit
  3. 26 Apr, 2017 1 commit
  4. 25 Jan, 2017 1 commit
    • mstarzinger's avatar
      [turbofan] Fix accumulator use in bytecode analysis. · efc8cb16
      mstarzinger authored
      This fixes the checks of accumulator usage flags in the computation of
      the interpreter register liveness during bytecode analysis. The usage
      flags at hand are bit patterns as opposed to flat enum values. Use the
      safe accessors instead of plain comparison.
      
      R=jarin@chromium.org
      TEST=mjsunit/regress/regress-crbug-683581
      BUG=chromium:683581
      
      Review-Url: https://codereview.chromium.org/2651653005
      Cr-Commit-Position: refs/heads/master@{#42648}
      efc8cb16
  5. 15 Dec, 2016 1 commit
  6. 08 Dec, 2016 1 commit
  7. 05 Dec, 2016 1 commit
  8. 01 Dec, 2016 1 commit
    • mstarzinger's avatar
      [turbofan] Move OSR BailoutId translation into graph builder. · 8893d4ff
      mstarzinger authored
      This moves the location of the bytecode-offset translation that turns
      offsets of back jumps into offsets of loop headers. This translation is
      now done by the {BytecodeGraphBuilder} after loop analysis has been
      performed. It safes one redudant iteration over the bytecode array. Note
      that this changes the semantics of the BailoutId used as an {osr_ast_id}
      throughout the compiler pipeline for OSR from Ignition.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2465913002
      Cr-Commit-Position: refs/heads/master@{#41431}
      8893d4ff
  9. 29 Nov, 2016 4 commits
  10. 22 Nov, 2016 1 commit
    • leszeks's avatar
      [ignition] Replace branch+loop analysis with a single pass · 292c4a0a
      leszeks authored
      Now that we have a JumpLoop bytecode, we can heavily simplify the
      branch/loop analysis by assuming that only JumpLoop bytecodes are
      backwards edges, and performing the loop analysis as a single
      (backwards) pass.
      
      This allows us to get rid of the branch analysis entirely, and builds a
      framework to do liveness analysis in the same pass.
      
      Review-Url: https://codereview.chromium.org/2519983002
      Cr-Commit-Position: refs/heads/master@{#41194}
      292c4a0a