1. 14 Apr, 2021 1 commit
  2. 06 Oct, 2020 2 commits
  3. 01 Jul, 2020 1 commit
  4. 11 Jun, 2020 1 commit
  5. 10 Jun, 2020 1 commit
    • Michael Lippautz's avatar
      cppgc: Introduce AllocationHandle · 935d9151
      Michael Lippautz authored
      Unified heap support in V8 requires having another (at least internal)
      heap that implements a unfied garbage collection strategy. This will
      not re-use the already existing cppgc::Heap because there should be no
      way in creating such a heap externally or scheduling stand-alone
      garbage collections.
      
      In order to have a common token, this CL introduces AllocationHandle
      which can be passed to MakeGarbageCollected to allocate C++ objects.
      V8 (soon) and the stand-alone heap both have methods to retrieve such
      a handle.
      
      This works around a problem with creating diamond class hierarchies
      when a base class would be exposed on the public API level.
      
      Fast paths for Blink are still possible because allocation handles can
      be cached the same way (e.g. global, or TLS) as a heap can be cached.
      
      Tbr: yangguo@chromium.org
      Bug: chromium:1056170
      Change-Id: I8e9472a2c24ef82d1178953e8429b1fd8a2344bc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238027
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68310}
      935d9151
  6. 02 Jun, 2020 1 commit
  7. 28 May, 2020 1 commit
    • Michael Lippautz's avatar
      cppgc: Rely on per-heap platform objects · 3d53d7ac
      Michael Lippautz authored
      Split platform into a process-global initialization part and per-heap
      platform objects.
      
      These platform objects still contain allocators and executors. With
      per-heap platforms GetForegroundTaskRunner() returns by definition the
      correct runner.
      
      In future, when initialized throuhg V8, an adapter can be used to
      translate between the different platforms, avoiding the needed for V8
      embedders to provide additional information.
      
      Bug: chromium:1056170
      Change-Id: I11bdd15e945687cfbdf38cae4137facb02559e0a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218030
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Anton Bikineev <bikineev@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68059}
      3d53d7ac
  8. 13 May, 2020 1 commit
  9. 12 May, 2020 1 commit
    • Omer Katz's avatar
      heap,cppgc: Update StackState enum values · fff219bf
      Omer Katz authored
      This CL adds 2 new values to the EmbedderStackState enum with more
      explicit names. The old values are updated as aliases to the new
      values and marked as soon to be deprecated. This CL also moves the
      enum to v8-platform.h so that it can be reused by cppgc.
      
      Depracating individual values in an enum is supported by GCC only
      since version 6. Thus new macros were needed for the deprecation
      (which delegate to the existing macros when supported). GCC versions
      older than 6 are still used by the CQ bots.
      
      Bug: chromium:1056170
      Change-Id: Id1ea73edfbbae282b0d8a3bb103dbbbf8ebd417e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2188971
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67744}
      fff219bf
  10. 08 May, 2020 2 commits
    • Michael Lippautz's avatar
      cppgc: Rename unittest files · f701df1f
      Michael Lippautz authored
      Adjust suffix to "-unittest" like everywhere else in V8.
      
      Accept clang-format suggested changes.
      
      Bug: chromium:1056170
      Change-Id: I54c1396e79aff87c052233853d7fe560337eeecf
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190410
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67672}
      f701df1f
    • Michael Lippautz's avatar
      cppgc: Implement allocation on custom spaces · 611d1bb9
      Michael Lippautz authored
      This patch provides infrastructure to pin object types to specific
      spaces. This allows embedders to create mutual exclusive arenas for
      certain (base) types. In future, this will also be used to provide
      sliding-window compaction on certain custom spaces.
      
      We mainly preserve the existing infrastructure with the difference
      that spaces are now slightly more dynamic than in Blink as they are
      kept in a vector instead of a fixed-size array.
      
      The mechanism differs from Blink in that it does not allow the user
      object to call allocation methods directly but instead provides a
      trait that can be overridden to specify a custom space.
      
      The patch preserves templatization for objects that do not go into
      custom spaces to safe a branch in the allocation hot path.
      
      Change-Id: I08aa6932348e2d6258e19c4a32d189865f459f02
      Bug: chromium:1056170
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187611
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67666}
      611d1bb9