1. 10 Sep, 2020 1 commit
    • Jakob Gruber's avatar
      [nci] Implement tier-up (part 3, spawn task & install) · 608018e5
      Jakob Gruber authored
      This is the final part of the tier-up commit series. It implements:
      
      - A prologue in NCI code objects that checks and acts upon the
      optimization marker.
      - Currently, handling is deferred to the InterpreterEntryTrampoline
      but this will change in the future.
      - The lifecycle is otherwise like Ignition-to-Turbofan; the runtime
      profiler marks a function for optimization, the next call to that
      function triggers optimization by calling into runtime, and the
      finished code object is installed both on the JSFunction and the
      optimized code cache.
      - The feedback vector's kOptimizedCodeWeakOrSmiOffset slot is
      currently reused for the mid-to-top tier up.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng
      Bug: v8:8888
      Change-Id: Iff50b05ddcc68b25d7ed0f1e0d20af076a1522a0
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2361466Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69808}
      608018e5
  2. 28 Jul, 2020 1 commit
  3. 10 Jul, 2020 1 commit
  4. 24 Jun, 2020 1 commit
  5. 17 Sep, 2019 1 commit
    • Jakob Gruber's avatar
      [compiler] Use PersistentMap in store-store elimination · b8127393
      Jakob Gruber authored
      Store-store elimination can potentially allocate many temporary data
      structures, all of which are contained in its so-called temporary
      zone. The zone is 'temporary' in the sense of only existing for the
      lifetime of the StoreStoreEliminationPhase; but all allocated memory
      remains alive until the phase terminates.
      
      Investigation of a pathological case (see the linked bug) showed this
      zone reaching a size of 4GB. The cause in this specific case was the
      UnobservableSet data structure, conceptually an immutable set (i.e.
      each operation creates a full copy). This CL changes the
      UnobservableSet to use a PersistentMap backing store rather than a
      ZoneSet. PersistentMap is intended for exactly this use-case, since
      copies are basically free and updates only change small parts of the
      data structure.
      
      Memory consumption for the linked pathological case drops from 4GB to
      70MB and execution speeds up from 20s to 17s.
      
      Bug: v8:9574
      Change-Id: I902b27f1aa42b88ddd905ee941df24028a68a9bd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795351
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63819}
      b8127393
  6. 05 Sep, 2019 1 commit
  7. 14 Aug, 2019 2 commits
  8. 12 Aug, 2019 1 commit
    • Santiago Aboy Solanes's avatar
      [turbofan] Remove the size restriction on store store elimination · 8070f963
      Santiago Aboy Solanes authored
      We were only considering eliminating Stores of size Tagged. There doesn't
      appear to be a reason why. This CL enables store store elimination for all
      sizes.
      
      For example, in pointer compression, it means that Compressed values can
      be targeted. In 32 bit versions, it means that doubles can now be targeted.
      
      This is safe under the assumption that every byte of a JS object is only
      ever accessed through one offset. For instance, byte 15 of a given object
      may be accessed using a two-byte read at offset 14, or a four-byte read at
      offset 12, but never both in the same program.
      
      Change-Id: I865d412ed5b4db53a0154cf4da6303c407fdbda7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1746469Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#63168}
      8070f963
  9. 17 Jul, 2019 1 commit
  10. 29 Mar, 2019 1 commit
  11. 20 Dec, 2018 1 commit
  12. 20 Sep, 2018 1 commit
  13. 17 Sep, 2018 1 commit
  14. 11 Sep, 2018 1 commit
  15. 15 Jun, 2018 1 commit
  16. 21 Mar, 2018 1 commit
  17. 13 Feb, 2018 1 commit
  18. 02 Jan, 2018 1 commit
  19. 12 Dec, 2017 1 commit
  20. 27 Nov, 2017 1 commit
  21. 25 Sep, 2017 1 commit
  22. 04 Sep, 2017 1 commit
  23. 22 May, 2017 1 commit
  24. 01 Sep, 2016 1 commit
  25. 25 Aug, 2016 1 commit
  26. 16 Aug, 2016 1 commit
  27. 10 Aug, 2016 1 commit
  28. 09 Aug, 2016 2 commits
  29. 29 Jun, 2016 1 commit
  30. 23 Jun, 2016 1 commit