1. 10 Jul, 2020 1 commit
  2. 15 Jun, 2020 1 commit
    • Jakob Gruber's avatar
      [nci] Add native_context_independent flags · f30b53bd
      Jakob Gruber authored
      ... to OptimizedCompilationInfo, BytecodeGraphBuilder, and
      JSHeapBroker.
      
      Also add first uses of these flags in pipeline.cc by skipping certain
      phases when nci is enabled. With this change, tests in the NCI variant
      will start to fail since generic lowering is not fully implemented.
      These implementations will follow incrementally in the next days.
      
      Bug: v8:8888
      Change-Id: I3f570fb92f09059d1f1f4015f88ffe80ccf746ad
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2239572
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68339}
      f30b53bd
  3. 24 Apr, 2020 1 commit
  4. 23 Apr, 2020 1 commit
    • Leszek Swirski's avatar
      [compile] Add an UnoptimizedCompileState class · 6458a529
      Leszek Swirski authored
      Move the persistent compilation state and Isolate inputs (such as the
      allocator, shared AST constants, hash seed, logger, etc.) which survives
      across both parse and compile, out of ParseInfo and into a new
      UnoptimizedCompileState class. Also add UnoptimizedCompilePerThreadState
      for per-thread state such as stack limit and RCS.
      
      In particular, this new state survives the ParseInfo being destructed,
      which means it is available after off-thread finalization. This allows a
      followup to access the PendingCompilationErrorHandler after finalization
      and report errors on merge.
      
      Bug: v8:10314
      Change-Id: Ia186bc0f267c704efd771aa1895f50a4525a8364
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2105636
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67329}
      6458a529
  5. 24 Jan, 2020 1 commit
  6. 08 Jan, 2020 1 commit
  7. 27 Nov, 2019 1 commit
  8. 10 Sep, 2019 1 commit
  9. 23 Aug, 2019 1 commit
  10. 29 Jul, 2019 1 commit
  11. 21 Jun, 2019 1 commit
    • Ross McIlroy's avatar
      [SFI] Always store function_literal_id in SFI. · f92d7196
      Ross McIlroy authored
      Calling FindIndexInScript performs a linear search on the script functions and can
      take considerable time. With Bytecode flushing we will lose the function_literal_id
      and have to call FindIndexInScript if we ever recompile the flushed function. This
      can take a significant proportion of the recompilation time and has caused regressions
      in rendering times for some web applications (e.g, 395ms in FindIndexInScript for 132ms
      spent lazily re-compiling code).
      
      To avoid this, add function_literal_id back into the SFI and remove it from
      UnoptimizedCompileInfo. This will slightly regress memory usage (particularly
      in cases where many of the SFIs are compiled), however it means we can remove
      the FindIndexInScript function and avoid these long-tail regressions when
      bytecode is flushed.
      
      BUG=chromium:965833
      
      Change-Id: Ia31e82eb6c871a6d698a518326a8555822a7a1d8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1669700Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62319}
      f92d7196
  12. 04 Jun, 2019 1 commit
    • Leszek Swirski's avatar
      [tracing] Speed up SharedFunctionInfo::TraceID · 43cd5d10
      Leszek Swirski authored
      Avoid the linear lookup of function literal id when getting the shared
      function info TraceID, by optionally passing through a FunctionLiteral.
      Additionally, use the FunctionLiteralId helper when a FunctionLiteral is
      not available, since it can also fast-path in some cases.
      
      As a drive-by, allow using a ScriptIterator without an Isolate pointer
      (e.g. manually creating a handle) to allow calling FunctionLiteralId
      without an Isolate pointer.
      
      Bug: v8:9325
      Change-Id: Ibfa053f300d6d5005485c67174a848264a5d1372
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1643429
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61983}
      43cd5d10
  13. 27 May, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Replace simple typedefs by using · a335f2ae
      Clemens Hammacher authored
      This replaces all typedefs that define types and not functions by the
      equivalent "using" declaration.
      
      This was done mostly automatically using this command:
      ag -l '\btypedef\b' src test | xargs -L1 \
           perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg'
      
      Patchset 2 then adds some manual changes for typedefs for pointer types,
      where the regular expression did not match.
      
      R=mstarzinger@chromium.org
      TBR=yangguo@chromium.org, jarin@chromium.org
      
      Bug: v8:9183
      Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61849}
      a335f2ae
  14. 24 May, 2019 1 commit
  15. 23 May, 2019 2 commits
  16. 22 May, 2019 1 commit
  17. 21 May, 2019 1 commit
  18. 17 May, 2019 1 commit
  19. 16 May, 2019 2 commits
  20. 08 Mar, 2019 1 commit
  21. 15 Feb, 2019 1 commit
  22. 13 Feb, 2019 1 commit
  23. 30 Nov, 2018 3 commits
    • Ross McIlroy's avatar
      Reland "[Compiler] Introduce IsCompiledScope which prevents flushing of compiled code" · e7ea6545
      Ross McIlroy authored
      This is a reland of 10ea3f8a
      
      Original change's description:
      > [Compiler] Introduce IsCompiledScope which prevents flushing of compiled code
      >
      > Introduces a IsCompiledScope object which can be used to check whether a
      > function is compiled, and ensure it remains compiled for the lifetime
      > of the scope without being uncompiled by bytecode flushing. The Compile
      > functions are modified to take a scope so that calling code can ensure
      > the function remains compiled for the lifetime they require.
      >
      > Also, don't allocate a feedback vector for asm-wasm code as this
      > is never used, and will be reallocated if the asm-wasm code fails to
      > instantiate the module and we fallback to regular JavaScript.
      >
      > Also restructure Compiler::PostInstantiation() to allocate the feedback
      > vector once, and do the optimized code check before optimizing for
      > always opt.
      >
      > BUG=v8:8395
      >
      > Change-Id: I3f1a71143fcae3d1a0c01eefe91ebb4b8594221a
      > Reviewed-on: https://chromium-review.googlesource.com/c/1352295
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57971}
      
      TBR=jgruber@chromium.org,mstarzinger@chromium.org
      
      Bug: v8:8395
      Change-Id: I8dc00798a5680997990c879c3380fe4febd47297
      Reviewed-on: https://chromium-review.googlesource.com/c/1357045
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57982}
      e7ea6545
    • Ross McIlroy's avatar
      Revert "[Compiler] Introduce IsCompiledScope which prevents flushing of compiled code" · 07537cdb
      Ross McIlroy authored
      This reverts commit 10ea3f8a.
      
      Reason for revert: Causing failure on gc_stress bot: 
      https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8928421099411850688/+/steps/Bisect_10ea3f8a/0/steps/Retry/0/logs/collections-construct../0
      
      Original change's description:
      > [Compiler] Introduce IsCompiledScope which prevents flushing of compiled code
      > 
      > Introduces a IsCompiledScope object which can be used to check whether a
      > function is compiled, and ensure it remains compiled for the lifetime
      > of the scope without being uncompiled by bytecode flushing. The Compile
      > functions are modified to take a scope so that calling code can ensure
      > the function remains compiled for the lifetime they require.
      > 
      > Also, don't allocate a feedback vector for asm-wasm code as this
      > is never used, and will be reallocated if the asm-wasm code fails to
      > instantiate the module and we fallback to regular JavaScript.
      > 
      > Also restructure Compiler::PostInstantiation() to allocate the feedback
      > vector once, and do the optimized code check before optimizing for
      > always opt.
      > 
      > BUG=v8:8395
      > 
      > Change-Id: I3f1a71143fcae3d1a0c01eefe91ebb4b8594221a
      > Reviewed-on: https://chromium-review.googlesource.com/c/1352295
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57971}
      
      TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org
      
      Change-Id: I1449a02a0aceb9757440757628e586df33972a40
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8395
      Reviewed-on: https://chromium-review.googlesource.com/c/1357042Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57974}
      07537cdb
    • Ross McIlroy's avatar
      [Compiler] Introduce IsCompiledScope which prevents flushing of compiled code · 10ea3f8a
      Ross McIlroy authored
      Introduces a IsCompiledScope object which can be used to check whether a
      function is compiled, and ensure it remains compiled for the lifetime
      of the scope without being uncompiled by bytecode flushing. The Compile
      functions are modified to take a scope so that calling code can ensure
      the function remains compiled for the lifetime they require.
      
      Also, don't allocate a feedback vector for asm-wasm code as this
      is never used, and will be reallocated if the asm-wasm code fails to
      instantiate the module and we fallback to regular JavaScript.
      
      Also restructure Compiler::PostInstantiation() to allocate the feedback
      vector once, and do the optimized code check before optimizing for
      always opt.
      
      BUG=v8:8395
      
      Change-Id: I3f1a71143fcae3d1a0c01eefe91ebb4b8594221a
      Reviewed-on: https://chromium-review.googlesource.com/c/1352295Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57971}
      10ea3f8a
  24. 15 Nov, 2018 1 commit
  25. 05 Nov, 2018 1 commit
  26. 15 Oct, 2018 1 commit
  27. 12 Oct, 2018 2 commits
  28. 09 Oct, 2018 1 commit
  29. 25 Sep, 2018 1 commit
  30. 20 Sep, 2018 2 commits
    • Ross McIlroy's avatar
      Merge UnoptimizedCompileJobTest::CompileFailureToFinalize and ... · 07a35d28
      Ross McIlroy authored
      Merge UnoptimizedCompileJobTest::CompileFailureToFinalize and  UnoptimizedCompileJobTest::CompileFailureToAnalyse
      
      They both do the same thing, and UnoptimizedCompileJobTest.CompileFailureToFinalize was
      failing on arm due to stack size parameters.
      
      BUG=v8:8041
      
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      
      Change-Id: I2506aed026420c2634d5cd41b0dc268debb512eb
      Reviewed-on: https://chromium-review.googlesource.com/1236814Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56099}
      07a35d28
    • Ross McIlroy's avatar
      [Compile] Refactor CompilerDispatcher for inner function compilation jobs · 80195fc5
      Ross McIlroy authored
      Refactors the CompilerDispatcher to be able to enqueue eager inner functions
      for off-thread compilation during top-level compilation of a script.
      
      Unoptimized compile jobs are simplified to only have two phases - compile
      and finalization. Only finalization requires heap access (and therefore
      needs to be run on the main thread). The change also introduces a requirement
      to register a SFI with a given compile job after that job is posted, this
      is due to the fact that an SFI won't necessarily exist at the point the job
      is posted, but is created later when top-level compile is being finalized.
      Logic in the compile dispatcher is update to deal with the fact that a job
      may not be able to progress if it doesn't yet have an associated SFI
      registered with it.
      
      BUG=v8:8041
      
      Change-Id: I66cccd626136738304a7cab0e501fc65cf342514
      Reviewed-on: https://chromium-review.googlesource.com/1215782
      Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56088}
      80195fc5
  31. 17 Sep, 2018 1 commit
  32. 14 Sep, 2018 1 commit
  33. 23 Jul, 2018 1 commit
  34. 04 Jul, 2018 1 commit