1. 26 Aug, 2016 2 commits
  2. 25 Aug, 2016 1 commit
    • rmcilroy's avatar
      [Compiler] Add compile operations to CompilerDispatcherJob. · c2d2d4d1
      rmcilroy authored
      Adds compile operations to the CompilerDispatcherJob interface. As such,
      introduces Compiler::PrepareUnoptimizedCompilationJob and updates the
      unoptimized compilation path to use CompilationJobs. Also unifies
      FinalizeCompilationJob to deal with both optimized and unoptimized
      compilation jobs.
      
      A dummy FullCodegenCompilationJob is also introduced, where all the work
      is done in the ExecuteJob phase, which cannot be run on a
      background thread.
      
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2251713002
      Cr-Commit-Position: refs/heads/master@{#38897}
      c2d2d4d1
  3. 22 Aug, 2016 1 commit
  4. 18 Aug, 2016 3 commits
  5. 16 Aug, 2016 4 commits
    • rmcilroy's avatar
      Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7... · de2f16d3
      rmcilroy authored
      Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7 id:140001 of https://codereview.chromium.org/2240463002/ )
      
      Reason for revert:
      Breaks Win64 bot
      
      Original issue's description:
      > [Interpreter] Introduce InterpreterCompilationJob
      >
      > Adds InterpreterCompilationJob as a sub-class of
      > CompilationJob, to enable off-thread bytecode
      > generation. Currently only used in
      > Interpreter::MakeBytecode.
      >
      > As part of this change, CompilationJob is modified
      > to make it less specific to optimized compilation,
      > renaming the phases as follows:
      >  - CreateGraph -> PrepareJob
      >  - OptimizeGraph -> ExecuteJob
      >  - GenerateCode -> FinalizeJob
      >
      > RegisterWeakObjectsInOptimizedCode is also moved out
      > of CompilationJob and instead becomes a static function
      > on Compiler.
      >
      > BUG=v8:5203
      >
      > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc
      > Committed: https://crrev.com/785990e9fc0dd9a9d963d25d0bed2909165e4ca9
      > Cr-Original-Commit-Position: refs/heads/master@{#38662}
      > Cr-Commit-Position: refs/heads/master@{#38668}
      
      TBR=mstarzinger@chromium.org,jkummerow@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2251673003
      Cr-Commit-Position: refs/heads/master@{#38669}
      de2f16d3
    • rmcilroy's avatar
      [Interpreter] Introduce InterpreterCompilationJob · 785990e9
      rmcilroy authored
      Adds InterpreterCompilationJob as a sub-class of
      CompilationJob, to enable off-thread bytecode
      generation. Currently only used in
      Interpreter::MakeBytecode.
      
      As part of this change, CompilationJob is modified
      to make it less specific to optimized compilation,
      renaming the phases as follows:
       - CreateGraph -> PrepareJob
       - OptimizeGraph -> ExecuteJob
       - GenerateCode -> FinalizeJob
      
      RegisterWeakObjectsInOptimizedCode is also moved out
      of CompilationJob and instead becomes a static function
      on Compiler.
      
      BUG=v8:5203
      
      Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc
      Review-Url: https://codereview.chromium.org/2240463002
      Cr-Original-Commit-Position: refs/heads/master@{#38662}
      Cr-Commit-Position: refs/heads/master@{#38668}
      785990e9
    • rmcilroy's avatar
      Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7... · ce65e105
      rmcilroy authored
      Revert of [Interpreter] Introduce InterpreterCompilationJob (patchset #7 id:140001 of https://codereview.chromium.org/2240463002/ )
      
      Reason for revert:
      Failing on Win64 bot:
      https://build.chromium.org/p/client.v8/builders/V8%20Win64/builds/12061/steps/Check/logs/regress-635429
      
      Original issue's description:
      > [Interpreter] Introduce InterpreterCompilationJob
      >
      > Adds InterpreterCompilationJob as a sub-class of
      > CompilationJob, to enable off-thread bytecode
      > generation. Currently only used in
      > Interpreter::MakeBytecode.
      >
      > As part of this change, CompilationJob is modified
      > to make it less specific to optimized compilation,
      > renaming the phases as follows:
      >  - CreateGraph -> PrepareJob
      >  - OptimizeGraph -> ExecuteJob
      >  - GenerateCode -> FinalizeJob
      >
      > RegisterWeakObjectsInOptimizedCode is also moved out
      > of CompilationJob and instead becomes a static function
      > on Compiler.
      >
      > BUG=v8:5203
      >
      > Committed: https://crrev.com/1fb6a7e697e8bc5b4af51647553741f966e00cdc
      > Cr-Commit-Position: refs/heads/master@{#38662}
      
      TBR=mstarzinger@chromium.org,jkummerow@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2249153002
      Cr-Commit-Position: refs/heads/master@{#38663}
      ce65e105
    • rmcilroy's avatar
      [Interpreter] Introduce InterpreterCompilationJob · 1fb6a7e6
      rmcilroy authored
      Adds InterpreterCompilationJob as a sub-class of
      CompilationJob, to enable off-thread bytecode
      generation. Currently only used in
      Interpreter::MakeBytecode.
      
      As part of this change, CompilationJob is modified
      to make it less specific to optimized compilation,
      renaming the phases as follows:
       - CreateGraph -> PrepareJob
       - OptimizeGraph -> ExecuteJob
       - GenerateCode -> FinalizeJob
      
      RegisterWeakObjectsInOptimizedCode is also moved out
      of CompilationJob and instead becomes a static function
      on Compiler.
      
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2240463002
      Cr-Commit-Position: refs/heads/master@{#38662}
      1fb6a7e6
  6. 05 Aug, 2016 3 commits
  7. 01 Aug, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Add support for accessor inlining. · 35a195e1
      bmeurer authored
      Allow inlining of getters and setters into TurboFan optimized code.
      This just adds the basic machinery required to essentially inline
      the setter and getter dispatch code for the (keyed) load/store ICs.
      There'll be follow up CLs to also actually inline some of the interesting
      accessor functions itself, like the byteLength and friends for the
      TypedArrays.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2198473002
      Cr-Commit-Position: refs/heads/master@{#38192}
      35a195e1
  8. 25 Jul, 2016 2 commits
  9. 21 Jul, 2016 2 commits
  10. 20 Jul, 2016 1 commit
  11. 14 Jul, 2016 1 commit
    • mstarzinger's avatar
      [turbofan] Remove fallback to TurboFan when Crankshaft bails out. · 8bad9474
      mstarzinger authored
      This removes the fallback path in question. Now the {AstNumbering} phase
      is the only phase deciding whether Crankshaft is supposed to be disabled
      or not. This in turn simplifies reasoning about the paths through the
      compilation pipeline. We can decide early whether we want Ignition to
      kick in depending on whether Crankshaft is enabled or not.
      
      R=mvstanton@chromium.org,rmcilroy@chromium.org
      
      Review-Url: https://codereview.chromium.org/2146573004
      Cr-Commit-Position: refs/heads/master@{#37763}
      8bad9474
  12. 13 Jul, 2016 1 commit
  13. 08 Jul, 2016 1 commit
  14. 02 Jun, 2016 1 commit
    • jarin's avatar
      [turbofan] Initial version of number type feedback. · 216bcf9f
      jarin authored
      This introduces optimized number operations based on type feedback.
      
      Summary of changes:
      
      1. Typed lowering produces SpeculativeNumberAdd/Subtract for JSAdd/Subtract if
         there is suitable feedback. The speculative nodes are connected to both the
         effect chain and the control chain and they retain the eager frame state.
      
      2. Simplified lowering now executes in three phases:
        a. Propagation phase computes truncations by traversing the graph from uses to
           definitions until checkpoint is reached. It also records type-check decisions
           for later typing phase, and computes representation.
        b. The typing phase computes more precise types base on the speculative types (and recomputes
           representation for affected nodes).
        c. The lowering phase performs lowering and inserts representation changes and/or checks.
      
      3. Effect-control linearization lowers the checks to machine graphs.
      
      Notes:
      
      - SimplifiedLowering will be refactored to have handling of each operation one place and
        with clearer input/output protocol for each sub-phase. I would prefer to do this once
        we have more operations implemented, and the pattern is clearer.
      
      - The check operations (Checked<A>To<B>) should have some flags that would affect
        the kind of truncations that they can handle. E.g., if we know that a node produces
        a number, we can omit the oddball check in the CheckedTaggedToFloat64 lowering.
      
      - In future, we want the typer to reuse the logic from OperationTyper.
      
      BUG=v8:4583
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1921563002
      Cr-Commit-Position: refs/heads/master@{#36674}
      216bcf9f
  15. 18 May, 2016 1 commit
  16. 13 May, 2016 2 commits
  17. 11 May, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Pass inlining_id via relocation info. · 32049620
      mstarzinger authored
      This passes the inlining_id of deoptimization points via the relocation
      info instead of via a side-channel to the CPU profiler. This is one step
      towards deprecating the side-channel in question and avoid the need for
      performing a lookup of the return address of the deopt point.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/1956693002
      Cr-Commit-Position: refs/heads/master@{#36177}
      32049620
  18. 10 May, 2016 1 commit
  19. 06 May, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Move inline function tracing to Crankshaft. · 69963b4c
      mstarzinger authored
      This moves all the machinery for tracing inlined function that is
      specific to Crankshaft into the appropriate component. Only the old
      side-channel via a list of InlinedFunctionInfo structs remained within
      the CompilationInfo for now. In the long run we will reconstruct that
      information from the deoptimization data on the code objects.
      
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/1944323002
      Cr-Commit-Position: refs/heads/master@{#36068}
      69963b4c
  20. 04 May, 2016 2 commits
  21. 02 May, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Untangle CompilationInfo allocated with new. · 601ee4eb
      mstarzinger authored
      This removes the CompilationInfoWithZone class, which was used to
      allocate a CompilationInfo on the C-heap. By now the CompilationJob is
      the single object being allocated on the C-heap and passed between the
      main thread and the compilation thread. Structs requiring destruction
      can be embedded within that CompilationJob. This simplifies involved
      lifetimes by coupling all lifetimes to one single object.
      
      R=bmeurer@chromium.org
      
      Review-Url: https://codereview.chromium.org/1930773003
      Cr-Commit-Position: refs/heads/master@{#35936}
      601ee4eb
  22. 27 Apr, 2016 3 commits
  23. 26 Apr, 2016 1 commit
  24. 25 Apr, 2016 2 commits
  25. 20 Apr, 2016 1 commit