1. 12 May, 2022 1 commit
    • Omer Katz's avatar
      [heap] Extend and rename NewSpace base class · b415cd7c
      Omer Katz authored
      NewSpace is renamed to SemiSpaceNewSpace and NewSpaceBase is renamed to
      NewSpace (the new PagedSpace new space implementation will be named
      PagedNewSpace).
      
      Most usecases are updated to use the base class rather than the concrete
      semi space based implementation. To that end, the base class is extended
      with additional virtual methods (for delegating to the concrete class).
      
      This CL follows these guidelines:
      (*) If at a method callsite we should know the exact new space
      implementation we use, we cast to the concrete class. This is the case
      for example for callsites in scavenger.*.
      (*) If a method is called from outside the heap implementation or should
      be present regardless of the concrete implementation, that method is
      made virtual.
      (*) Other cases are usually methods that are specific to a concrete
      implementation but the concrete implementation is not known at the
      callsite and there's no clear way to nicely abstract the method. In such
      cases we cast to the concrete SemiSpaceNewSpace implementation for now
      and we will revisit these cases once PagedNewSpace exists.
      
      Bug: v8:12612
      Change-Id: I7b85626774ce0d785b0257bf8d32b9f50eeaf292
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3625975
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80482}
      b415cd7c
  2. 15 Feb, 2022 2 commits
  3. 11 Feb, 2022 1 commit
  4. 10 Feb, 2022 1 commit
  5. 09 Feb, 2022 1 commit
  6. 24 Nov, 2021 1 commit
  7. 12 Oct, 2021 1 commit
  8. 11 Oct, 2021 1 commit
  9. 24 Sep, 2021 1 commit
  10. 19 Jul, 2021 1 commit
  11. 07 Jun, 2021 1 commit
  12. 17 May, 2021 1 commit
  13. 07 May, 2021 1 commit
  14. 05 Oct, 2020 1 commit
  15. 30 Sep, 2020 1 commit
  16. 25 Sep, 2020 2 commits
  17. 08 Sep, 2020 2 commits
  18. 17 Jun, 2020 1 commit
    • Dan Elphick's avatar
      [heap] Use BasicMemoryChunk::FromHeapObject more · 6f267e8a
      Dan Elphick authored
      Since ReadOnlySpace pages will soon not be MemoryChunks, change most
      uses of MemoryChunk::FromHeapObject and FromAddress to use the
      BasicMemoryChunk variants and which use the new MemoryChunk::cast
      function that takes a BasicMemoryChunk and DCHECKs !InReadOnlySpace().
      
      To enable this, it also moves into BasicMemoryChunk several MemoryChunk
      functions that just require a BasicMemoryChunk.
      
      Bug: v8:10454
      Change-Id: I80875b2c2446937ac2c2bc9287d36e71cc050c38
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2243216
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68390}
      6f267e8a
  19. 05 May, 2020 1 commit
  20. 17 Jan, 2020 1 commit
  21. 16 Oct, 2019 1 commit
  22. 29 Jul, 2019 1 commit
  23. 14 Jun, 2019 1 commit
  24. 04 Jun, 2019 2 commits
  25. 23 May, 2019 3 commits
  26. 20 May, 2019 3 commits
  27. 07 Mar, 2019 1 commit
    • Sigurd Schneider's avatar
      [heap] Clean-up some weak map entries in scavenger · 4e6a1a75
      Sigurd Schneider authored
      This change enables clean-up of weak map entries in the
      scavenger of the weak map is in the young generation.
      With this change, the scavenger treats keys in ephemerons as
      weak instead of strong, but does not implement full ephemeron
      semantics: Values are treated always as strong, independently
      of whether the key is live or not.
      
      This approach ensures that no value is cleaned up accidentally.
      After scavenging, all entries with dead keys are removed from
      weak maps. After that, some values that are not referenced anywhere
      anymore might still be in the heap, and those can be cleaned up
      in the next scavenge.
      
      What the scavenger does, amounts to one iteration of the
      fixed-point algorithm required to implement ephemeron semantics.
      We hope that this is a reasonable trade-off between time spent
      tracing and cleaned-up entries.
      
      This change does not affect weak maps that reside in old space.
      
      Bug: v8:8557
      Change-Id: Ic5618b3b863ad8c314c87449571150e756fecbf0
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1467182
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60101}
      4e6a1a75
  28. 27 Feb, 2019 1 commit
  29. 06 Feb, 2019 1 commit
  30. 05 Feb, 2019 1 commit
  31. 29 Jan, 2019 1 commit
  32. 24 Jan, 2019 1 commit