1. 15 Apr, 2021 1 commit
  2. 31 Mar, 2021 1 commit
  3. 02 Feb, 2021 1 commit
  4. 17 Dec, 2020 1 commit
  5. 02 Dec, 2020 1 commit
  6. 17 Nov, 2020 1 commit
    • Jakob Gruber's avatar
      [nci] Share smi feedback and enable related optimizations · 3599cce1
      Jakob Gruber authored
      This CL enables a first batch of feedback-based optimizations in NCI
      code. Specifically, optimizations based on unary, binary, compare,
      for-in-next, and for-in-prepare feedback are now enabled.
      
      This has two main implications:
      
      1. NCI code can now deopt. Deoptimized code is currently thrown away
      permanently and cannot be reused. Now that shared/cached NCI code can
      deopt, this leads to an interesting question of what should happen
      with deoptimized NCI code. The answer in this CL is to remove the
      cache entry (it may later be re-added).
      
      2. Tiering up from NCI to TF still requires feedback; since NCI code,
      starting with this CL, no longer collects full feedback, feedback must
      be created in some other way. This is solved by sharing a
      context-independent encoding of feedback across native contexts.
      
      Feedback is shared through a new SerializedFeedback object type,
      essentially a byte array of serialized feedback. Currently, only
      smi-based feedback is shared, but map-based feedback will be added in
      the future.
      
      SerializedFeedback is kept in the NCI cache alongside NCI Code
      objects.  It is created on NCI cache insertion, and deserialized upon
      NCI cache hits.
      
      Bug: v8:8888
      Change-Id: Ic0d5fbea3aa4d3b0a165624dab9d0283b07dcee7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531775Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71224}
      3599cce1
  7. 03 Nov, 2020 1 commit
  8. 06 Oct, 2020 1 commit
    • Jakob Gruber's avatar
      [nci] Add a --isolate-script-cache-ageing flag · af118269
      Jakob Gruber authored
      The NCI cache depends on the script cache (which is essentially a
      SharedFunctionInfo cache, and the SFIs contain bytecode) to
      deduplicate SFIs across native contexts. NCI caching does not work
      without script caching. Thus the lifetimes of both caches should
      match; in particular, disabling cache ageing for NCI is only effective
      if script cache ageing is also disabled.
      
      This CL adds an --isolate-script-cache-ageing flag. It's separate from
      the --turbo-nci-cache-ageing flag s.t. we can disable script cache
      ageing *without NCI* for benchmarking purposes.
      
      Future work: Good ageing heuristics for both script and nci caches.
      
      Bug: v8:8888
      Change-Id: Ia5546feeced5821a538d97db1bb8f5bb92528114
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2452471
      Auto-Submit: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70339}
      af118269
  9. 05 Oct, 2020 1 commit
  10. 28 Jul, 2020 1 commit
  11. 15 Jul, 2020 1 commit
  12. 13 Jul, 2020 1 commit
  13. 18 Sep, 2019 1 commit
  14. 24 May, 2019 1 commit
  15. 23 May, 2019 2 commits
  16. 21 May, 2019 1 commit
  17. 20 May, 2019 1 commit
  18. 17 May, 2019 2 commits
  19. 22 Jan, 2019 1 commit
  20. 18 Dec, 2018 1 commit
  21. 07 Dec, 2018 1 commit
  22. 23 Nov, 2018 1 commit
  23. 31 Oct, 2018 1 commit
  24. 24 Oct, 2018 1 commit
  25. 20 Sep, 2018 1 commit
  26. 12 Jul, 2018 1 commit
  27. 04 Jul, 2018 1 commit
  28. 26 Jun, 2018 1 commit
  29. 25 Jun, 2018 1 commit
    • Camillo Bruni's avatar
      Reland "[parser][log] Log script id during background compilation" · e7f5c5cc
      Camillo Bruni authored
      This reverts commit a800e050.
      
      Original change's description:
      > Revert "[parser][log] Log script id during background compilation"
      >
      > This reverts commit aafd5c52.
      >
      > Reason for revert: Tentative revert for
      >
      > https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64/24825
      > https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/3242
      >
      > Original change's description:
      > > [parser][log] Log script id during background compilation
      > >
      > > - Add separate script-create, script-reserve-id and script-details log events
      > > - Add log events for CompilationCache hits and puts
      > > - Simplify function event logging by only pass along the script id
      > > - Explicitly create Scripts in parse-processor.js on script events only
      > > - Create a temporary script id in the ParseInfo for use during background
      > >   parsing and compilation
      > > - Clean up ParseInfo initialization to centralize creation and use of
      > >   script ids
      > > - Allow creating Scripts with predefined script ids
      > >
      > > Bug: chromium:757467, chromium:850038
      > > Change-Id: I02dfd1d5725795b9fe0ea94ef57b287b934a1efe
      > > Reviewed-on: https://chromium-review.googlesource.com/1097131
      > > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      > > Reviewed-by: Leszek Swirski <leszeks@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#53978}
      >
      > TBR=ulan@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org
      >
      > Change-Id: I629f72f51d5e086e2b54658c1fdd18cec268aab2
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: chromium:757467, chromium:850038
      > Reviewed-on: https://chromium-review.googlesource.com/1112538
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#53984}
      
      TBR=ulan@chromium.org,yangguo@chromium.org,cbruni@chromium.org,gsathya@chromium.org,leszeks@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: chromium:757467, chromium:850038
      Change-Id: I3088c86362c06ee50464f1f14e25350b1b8048ad
      Reviewed-on: https://chromium-review.googlesource.com/1112539Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53994}
      e7f5c5cc
  30. 22 Jun, 2018 2 commits
  31. 21 Jun, 2018 1 commit
  32. 03 May, 2018 1 commit
  33. 09 Apr, 2018 1 commit
  34. 06 Apr, 2018 2 commits
    • 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
  35. 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
  36. 21 Feb, 2018 1 commit