1. 05 Mar, 2021 1 commit
    • Frank Emrich's avatar
      [dict-proto] SwissNameDictionary rollout in runtime code, pt. 1 · fc7ca518
      Frank Emrich authored
      This CL is part of a series that makes SwissNameDictionary available
      as a new property backing store. Currently, the flag
      v8_dict_mode_prototypes allows selecting between NameDictionary and
      OrderedNameDictionary as the backing store used for all dictionary
      mode objects. This series of CLs changes this such that enabling the
      flag causes SwissNameDictionary being used instead of
      OrderedNameDictionary. The behavior for when the flag is not set
      remains unchanged (= use NameDictionary).
      
      This particular CL
      a) moves two operations from ordered-hash-table.cc to
      swiss-name-dictionary.cc (which were itself just copies of existing
      functions, see the existing TODOs about cleaning this up).
      
      b) adds a new getter for the SwissNameDictionary backing store,
      called JSReceiver::property_dictionary_swiss.
      
      c) contains a first wave of replacing usages of
      OrderedNameDictionary with SwissNameDictionary.
      
      Bug: v8:11388
      Change-Id: Ie6b45571aee3646c0c0d3937b3c25f0f033810dd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732676Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Frank Emrich <emrich@google.com>
      Cr-Commit-Position: refs/heads/master@{#73213}
      fc7ca518
  2. 13 Nov, 2020 1 commit
  3. 11 Nov, 2020 1 commit
  4. 03 Nov, 2020 1 commit
  5. 02 Nov, 2020 1 commit
  6. 07 Oct, 2020 1 commit
  7. 14 Aug, 2020 1 commit
    • Leszek Swirski's avatar
      [offthread] Change OffThreadIsolate to LocalIsolate · f1589bbe
      Leszek Swirski authored
      This patch introduces a new LocalIsolate and LocalFactory, which use
      LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows
      us to remove those classes, as well as the related OffThreadSpace,
      OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle.
      OffThreadLogger becomes LocalLogger.
      
      LocalHeap behaves more like Heap than OffThreadHeap did, so this allows
      us to additionally remove the concept of "Finish" and "Publish" that the
      OffThreadIsolate had, and allows us to internalize strings directly with
      the newly-concurrent string table (where the implementation can now move
      to FactoryBase).
      
      This patch also removes the off-thread support from the deserializer
      entirely, as well as removing the LocalIsolateWrapper which allowed
      run-time distinction between Isolate and OffThreadIsolate. LocalHeap
      doesn't support the reservation model used by the deserializer, and we
      will likely move the deserializer to use LocalIsolate unconditionally
      once we figure out the details of how to do this.
      
      Bug: chromium:1011762
      
      Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69397}
      f1589bbe
  8. 10 Jul, 2020 2 commits
    • Leszek Swirski's avatar
      [hashtable] Allow GlobalDictionary to have holes · 82726b64
      Leszek Swirski authored
      Rather than marking deleted GlobalDictionary entries with a "The Hole"
      valued PropertyCell, we now remove those PropertyCells entirely and
      use the standard HashTable deleted item marker (also the Hole).
      
      This comes with several simplifications:
      
        1) We no longer need a customizable IsKey method on HastTable shapes,
           which was only used by GlobalDictionary to mark "The Hole" cells
           as not real keys,
        2) We can get rid of IsLive/IsKey from the Shape entirely, and define
           it directly in the HashTable, which will also allow us (in the
           future) to encourage caching of "undefined" and "Hole" where used
           for IsKey checks,
        3) PropertyCell invalidation doesn't necessarily have to allocate a
           new replacement cell (specifically, on deletion), nor does it have
           to deal with cells that contain the Hole,
        4) kNeedsHoleCheck is renamed to kMatchNeedsHoleCheck (to be explicit
           that this is only needed to guard IsMatch, which may do an
           indentity comparison and thus not need the HoleCheck guard). It's
           also moved out of BaseShape and into the various shapes that
           define IsMatch, to make them more explicitly think about the
           value,
        5) Modified some while loops into for loops to allow clearer use of
           "continue" on successful hole checks.
      
      Change-Id: If591cbb6b49d59726bdc615413aba4f78fd64632
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292230
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68807}
      82726b64
    • Leszek Swirski's avatar
      [cleanup] Move GetMap to HashTable from Shape · ae53e491
      Leszek Swirski authored
      The map of the HashTable is more a property of the HashTable than part
      of its shape, so we can move its static map getter (for construction)
      to to HashTable class itself.
      
      Change-Id: I73f4aa7260d6ce749ef51961767fd37d1ab520e4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2289782
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68805}
      ae53e491
  9. 04 Mar, 2020 1 commit
  10. 03 Mar, 2020 2 commits
  11. 02 Mar, 2020 1 commit
  12. 16 Jan, 2020 1 commit
  13. 10 Jan, 2020 1 commit
  14. 19 Dec, 2019 1 commit
    • Shu-yu Guo's avatar
      [weakrefs] Hold unregister tokens weakly · 45bb4498
      Shu-yu Guo authored
      Change unregister tokens to be held weakly instead of strongly. This
      enables the use case for an object to be used as its own unregister
      token.
      
      To avoid using an ephemeron table, FinalizationGroup's key_map is
      changed to key off unregister tokens' identity hashes. Because hashes
      may collide, a single key list may rarely contain multiple tokens. When
      a FinalizationGroup WeakCell's token becomes unreachable, during GC, it
      is removed from the the doubly linked key list and removed from the key
      map if it had a unique key.
      
      Bug: v8:8179
      Change-Id: If88fd2ab196e3f9a287990ae345117a0abb2f04d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970493
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65532}
      45bb4498
  15. 18 Dec, 2019 1 commit
  16. 27 Nov, 2019 1 commit
    • Leszek Swirski's avatar
      [isolate] Make field getters use a const Isolate* · 42a56e03
      Leszek Swirski authored
      To indicate that the Isolate* in getters might not be a "real" isolate,
      but rather a calculated one from GetIsolateForPtrCompr only used for
      calculating the isolate root, make that function return a const Isolate*
      and change field getters, Object::IsFoo predicates, and related
      functions to all take a const Isolate* instead of an Isolate*
      
      With this change, we can slightly more confidently use Objects that are
      in OffThreadSpace, without having to worry too much about having an
      Isolate* floating around that could accidentally be used.
      
      This is a slight abuse of const semantics, but it allows implicit
      conversion from Isolate* arguments to the const Isolate* parameter.
      
      Bug: v8:7703
      Bug: chromium:1011762
      Change-Id: I54d4a65d2299477195f4d754cabe64ce34fdaa4c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1939455
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65199}
      42a56e03
  17. 01 Nov, 2019 1 commit
  18. 16 Oct, 2019 1 commit
  19. 28 Aug, 2019 1 commit
  20. 09 Jul, 2019 1 commit
  21. 02 Jul, 2019 1 commit
  22. 24 May, 2019 1 commit
  23. 23 May, 2019 1 commit
  24. 20 May, 2019 1 commit
  25. 04 Apr, 2019 1 commit
  26. 29 Mar, 2019 1 commit
  27. 12 Mar, 2019 1 commit
  28. 25 Feb, 2019 1 commit
  29. 13 Feb, 2019 1 commit
  30. 09 Jan, 2019 1 commit
  31. 26 Dec, 2018 1 commit
  32. 18 Dec, 2018 1 commit
  33. 27 Nov, 2018 1 commit
  34. 25 Nov, 2018 1 commit
  35. 23 Nov, 2018 1 commit
  36. 05 Nov, 2018 1 commit
  37. 26 Sep, 2018 1 commit
  38. 24 Sep, 2018 1 commit