1. 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
  2. 10 Jun, 2020 1 commit
  3. 23 May, 2019 3 commits
  4. 22 May, 2019 1 commit
  5. 21 May, 2019 1 commit
  6. 17 May, 2019 1 commit
  7. 16 May, 2019 2 commits
  8. 29 Jan, 2019 3 commits
  9. 19 Dec, 2018 1 commit
  10. 08 Dec, 2018 1 commit
  11. 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
  12. 23 Nov, 2018 1 commit
  13. 15 Nov, 2018 1 commit
  14. 31 Jul, 2018 1 commit
  15. 23 Jul, 2018 1 commit
  16. 06 Jul, 2018 3 commits
  17. 05 Jul, 2018 2 commits
    • Georg Neis's avatar
      Revert "Reland "[turbofan] Rewrite CompilationDependencies"" · 9d8d074d
      Georg Neis authored
      This reverts commit 4b9b9b68.
      
      Reason for revert: Regresses Octane.
      
      Original change's description:
      > Reland "[turbofan] Rewrite CompilationDependencies"
      > 
      > This is a reland of 52a10e50, after
      > eliminating an invalid assumption about maps.
      > 
      > TBR=jarin@chromium.org
      > TBR=mstarzinger@chromium.org
      > 
      > Original change's description:
      > > [turbofan] Rewrite CompilationDependencies
      > >
      > > Instead of installing code dependencies during graph reduction,
      > > install them after code generation.
      > >
      > > Bug: v8:7902, v8:7790
      > > Change-Id: I8a3798254abb5b9ec7c295a1592aeb6b51f24c7a
      > > Reviewed-on: https://chromium-review.googlesource.com/1119913
      > > Commit-Queue: Georg Neis <neis@chromium.org>
      > > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#54170}
      > 
      > Bug: v8:7902, v8:7790
      > Change-Id: I9cbaf98980379b9b17464af5952ec0c47e1cdc6f
      > Reviewed-on: https://chromium-review.googlesource.com/1126999
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54254}
      
      TBR=mstarzinger@chromium.org,jarin@chromium.org,neis@chromium.org
      
      Change-Id: Iece193046c48ee96ab7952d2b3bd7ad05f39b190
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7902, v8:7790
      Reviewed-on: https://chromium-review.googlesource.com/1127119Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54260}
      9d8d074d
    • Georg Neis's avatar
      Reland "[turbofan] Rewrite CompilationDependencies" · 4b9b9b68
      Georg Neis authored
      This is a reland of 52a10e50, after
      eliminating an invalid assumption about maps.
      
      TBR=jarin@chromium.org
      TBR=mstarzinger@chromium.org
      
      Original change's description:
      > [turbofan] Rewrite CompilationDependencies
      >
      > Instead of installing code dependencies during graph reduction,
      > install them after code generation.
      >
      > Bug: v8:7902, v8:7790
      > Change-Id: I8a3798254abb5b9ec7c295a1592aeb6b51f24c7a
      > Reviewed-on: https://chromium-review.googlesource.com/1119913
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54170}
      
      Bug: v8:7902, v8:7790
      Change-Id: I9cbaf98980379b9b17464af5952ec0c47e1cdc6f
      Reviewed-on: https://chromium-review.googlesource.com/1126999Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54254}
      4b9b9b68
  18. 04 Jul, 2018 2 commits
    • Michael Starzinger's avatar
      [turbofan] Remove obsolete {GenerateCodeForTesting} method. · 86bdb100
      Michael Starzinger authored
      R=jarin@chromium.org
      
      Change-Id: I3a6759468f1a21b84ab9a294a2ca41d70b9cec99
      Reviewed-on: https://chromium-review.googlesource.com/1123829Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54222}
      86bdb100
    • Yang Guo's avatar
      Revert "[turbofan] Rewrite CompilationDependencies" · b1cf1e1e
      Yang Guo authored
      This reverts commit 52a10e50.
      
      Reason for revert: https://test-results.appspot.com/data/layout_results/V8-Blink_Linux_64__dbg_/12434/layout-test-results/results.html
      
      Crash e.g. in http/tests/devtools/oopif/oopif-performance-cpu-profiles.js
      
      crash log for devtools (pid <unknown>):
      STDOUT: <empty>
      STDERR: 
      STDERR: 
      STDERR: #
      STDERR: # Fatal error in ../../v8/src/compilation-dependencies.cc, line 281
      STDERR: # Debug check failed: descriptor == owner->LastAdded() (10 vs. 22).
      STDERR: #
      STDERR: #
      STDERR: #
      STDERR: #FailureMessage Object: 0x7fff86878630#0 0x0000031c642c base::debug::StackTrace::StackTrace()
      STDERR: #1 0x0000046a56bb gin::(anonymous namespace)::PrintStackTrace()
      STDERR: #2 0x00000469c528 V8_Fatal()
      STDERR: #3 0x00000469c285 v8::base::(anonymous namespace)::DefaultDcheckHandler()
      STDERR: #4 0x000001cc5253 v8::internal::CompilationDependencies::DependOnFieldType()
      STDERR: #5 0x000001cdcc46 v8::internal::compiler::AccessInfoFactory::ComputePropertyAccessInfo()
      STDERR: #6 0x000001cde661 v8::internal::compiler::AccessInfoFactory::ComputePropertyAccessInfos()
      STDERR: #7 0x000001dd982b v8::internal::compiler::JSNativeContextSpecialization::ReduceNamedAccess()
      STDERR: #8 0x000001ddb715 v8::internal::compiler::JSNativeContextSpecialization::ReduceNamedAccessFromNexus()
      STDERR: #9 0x000001dd656d v8::internal::compiler::JSNativeContextSpecialization::ReduceJSLoadNamed()
      STDERR: #10 0x000001d53872 v8::internal::compiler::GraphReducer::Reduce()
      STDERR: #11 0x000001d534a5 v8::internal::compiler::GraphReducer::ReduceTop()
      STDERR: #12 0x000001d52e58 v8::internal::compiler::GraphReducer::ReduceNode()
      STDERR: #13 0x000001e4c201 v8::internal::compiler::InliningPhase::Run()
      STDERR: #14 0x000001e44f79 v8::internal::compiler::PipelineImpl::Run<>()
      STDERR: #15 0x000001e41058 v8::internal::compiler::PipelineImpl::CreateGraph()
      STDERR: #16 0x000001e40c75 v8::internal::compiler::PipelineCompilationJob::PrepareJobImpl()
      STDERR: #17 0x000001ccd437 v8::internal::OptimizedCompilationJob::PrepareJob()
      STDERR: #18 0x000001cd071e v8::internal::(anonymous namespace)::GetOptimizedCode()
      STDERR: #19 0x000001cd0c6f v8::internal::Compiler::CompileOptimized()
      STDERR: #20 0x00000231fb62 v8::internal::__RT_impl_Runtime_CompileOptimized_Concurrent()
      STDERR: #21 0x00000288e535 <unknown>
      
      Original change's description:
      > [turbofan] Rewrite CompilationDependencies
      > 
      > Instead of installing code dependencies during graph reduction,
      > install them after code generation.
      > 
      > Bug: v8:7902, v8:7790
      > Change-Id: I8a3798254abb5b9ec7c295a1592aeb6b51f24c7a
      > Reviewed-on: https://chromium-review.googlesource.com/1119913
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54170}
      
      TBR=mstarzinger@chromium.org,jarin@chromium.org,neis@chromium.org
      
      Change-Id: Ic58c2bfadbd34bb6ba7dc0d2b74871cc90b0a74f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7902, v8:7790
      Reviewed-on: https://chromium-review.googlesource.com/1125680Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54192}
      b1cf1e1e
  19. 03 Jul, 2018 1 commit
  20. 23 Jun, 2018 1 commit
  21. 19 Jun, 2018 1 commit
  22. 11 Jun, 2018 1 commit
  23. 06 Apr, 2018 1 commit
  24. 04 Apr, 2018 1 commit
  25. 22 Feb, 2018 1 commit
    • Benedikt Meurer's avatar
      [cleanup] Introduce a dedicated FeedbackCell. · aff1f378
      Benedikt Meurer authored
      This is preparatory cleanup work for eventually tracking the functions
      (rather than concrete closures) in the CALL_IC, also for builtins like
      the default PromiseCapability [[Resolve]] and [[Reject]] functions. It
      adds a new FeedbackCell type, which is used by JSFunctions consistently
      now to reference the feedback vector (or undefined if not the function
      is not compiled yet or is a native/asm.js function).
      
      This also changes the calling convention for FastNewClosure builtin and
      the JSCreateClosure operator in TurboFan to carry the FeedbackCell here
      instead of the parent FeedbackVector and the slot index. In addition we
      eliminate the now unused %InterpreterNewClosure runtime function.
      
      Bug: v8:2206, v8:7253, v8:7310
      Change-Id: Ib4ce456e276e0273e57c163dcdd0b33abf863656
      Reviewed-on: https://chromium-review.googlesource.com/928403
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51474}
      aff1f378
  26. 24 Jan, 2018 1 commit
  27. 15 Nov, 2017 1 commit
  28. 13 Oct, 2017 1 commit
  29. 29 Sep, 2017 1 commit