1. 23 Jul, 2018 1 commit
  2. 17 Jul, 2018 1 commit
  3. 06 Jul, 2018 2 commits
    • Georg Neis's avatar
      Move CompilationDependencies into compiler. · cf87e94c
      Georg Neis authored
      - Move the CompilationDependencies member of OptimizedCompilationInfo
        to Turbofan's PipelineData (and thus into the compiler namespace).
      - Move compilation-dependencies.{cc,h} to the compiler directory.
      
      Bug: v8:7902
      Change-Id: I5471d0923daf83abe975357325db5bc5ad0a8571
      Reviewed-on: https://chromium-review.googlesource.com/1127793
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54295}
      cf87e94c
    • Georg Neis's avatar
      Reland^2 "[turbofan] Rewrite CompilationDependencies" · a1cb1eb9
      Georg Neis authored
      This is a reland of 4b9b9b68, which
      accidentally disabled optimization after dependency changes (instead
      of retrying).
      
      TBR=jarin@chromium.org
      TBR=mstarzinger@chromium.org
      
      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}
      
      Bug: v8:7902, v8:7790
      Change-Id: I2b7a7d186e03990350e375470569177e3309683c
      Reviewed-on: https://chromium-review.googlesource.com/1127579
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54280}
      a1cb1eb9
  4. 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
  5. 04 Jul, 2018 1 commit
    • 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
  6. 03 Jul, 2018 1 commit
  7. 26 Jun, 2018 1 commit
  8. 25 Jun, 2018 1 commit
    • Sigurd Schneider's avatar
      [unittests] Fix use-after-free leak via compilation dependencies · 395d1e57
      Sigurd Schneider authored
      Unittests may take compilation dependencies without committing them,
      because no code object is ever created. This CL ensures that after each
      unittest, all uncommitted dependencies are discarded. Without this,
      the compilation dependencies leaks pointers to already freed C++ objects
      between test-cases, which are then accessed after free if a unittest
      invalidates the corresponding compilation dependency.
      
      Bug: v8:851886
      Change-Id: I55d989c42d45f5d713613bc1d3f86e00bd1b8d21
      Reviewed-on: https://chromium-review.googlesource.com/1113313
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53998}
      395d1e57
  9. 19 Jun, 2018 1 commit
  10. 11 Jun, 2018 1 commit
    • Sigurd Schneider's avatar
      [turbofan] Add inlining for RegExp#test · 394d53d1
      Sigurd Schneider authored
      This CL adds a TFS stub for RegExp#test and moves several checks to
      the JSCallReducer. In particular, the JSCallReducer checks that
       - property {exec} on the regexp is still the original exec
       - property {lastIndex} on the regexp is a non-negative smi
      The stub does not repeat these checks in release mode.
      
      This effectively means that if the regexp is known, we can perform these
      checks at compile time, and get away with a map dependency.
      
      Bug: v8:7779, v8:7200
      
      Change-Id: I0c6d711d4f1d2f6f325a1c02855b0e1b62e014c8
      Reviewed-on: https://chromium-review.googlesource.com/1074654
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53630}
      394d53d1
  11. 26 Apr, 2018 1 commit
  12. 23 Apr, 2018 1 commit
  13. 09 Apr, 2018 1 commit
  14. 06 Apr, 2018 3 commits
    • Leszek Swirski's avatar
      [objects] Merge SFI outer_scope_info and feedback_metadata · 6bd1d3c2
      Leszek Swirski authored
      Merge the outer_scope_info and feedback_metadata fields on
      SharedFunctionInfo. outer_scope_info is only used during parsing,
      and feedback_metadata is only available after compilation, so the
      two never exist at the same time. Thus, they can share a field slot.
      
      The exception is un-compiling and re-compiling a function, where we
      need the outer_scope_info again. Fortunately, the outer_scope_info
      can be re-calculated from the SFI's scope_info.
      
      Bug: v8:7606
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I6b97fefe859e89df75ad870da4a0bfa4b869772a
      Reviewed-on: https://chromium-review.googlesource.com/992432Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52454}
      6bd1d3c2
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  15. 26 Mar, 2018 1 commit
  16. 23 Mar, 2018 1 commit
  17. 22 Mar, 2018 3 commits
  18. 21 Mar, 2018 1 commit
  19. 20 Mar, 2018 2 commits
  20. 16 Mar, 2018 3 commits
  21. 23 Feb, 2018 4 commits
  22. 22 Feb, 2018 3 commits
  23. 21 Feb, 2018 1 commit
  24. 20 Feb, 2018 1 commit