1. 27 Apr, 2022 1 commit
  2. 26 Apr, 2022 1 commit
  3. 13 Apr, 2022 1 commit
  4. 06 Apr, 2022 2 commits
    • Leszek Swirski's avatar
      [test] Add a unittest platform setup mixin · 0ff82052
      Leszek Swirski authored
      Change the unittest runner to no longer uncondtionally set up a default
      platform in the "environment", but to instead make platform set-up part
      of the "mixin" framework for test fixtures.
      
      Requires modifying some tests that expect the platform to be available,
      and all flag implications resolved, before the mixin constructors run.
      
      We still keep the environment for setting up the process for cppgc. This
      process setup can only be done once per process, so it can no longer use
      the platform -- that's ok though, the page allocator used by cppgc's
      process initialisation doesn't have to be the same as the platform's so
      we can just pass in a separate new one.
      
      Change-Id: Ic8ccf39722e8212962c5bba87350c4b304388a7c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571886Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79820}
      0ff82052
    • Clemens Backes's avatar
      [cppgc] Remove custom void_t, use std · 6806378c
      Clemens Backes authored
      Remove the pre-C++17 implementation of void_t, just use std::void_t now.
      
      R=omerkatz@chromium.org
      
      Bug: v8:12425
      Change-Id: Iabf72f1540ddb4db666e5a74f169f73546241c1f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571888Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79812}
      6806378c
  5. 18 Mar, 2022 1 commit
    • Michael Lippautz's avatar
      Revert "cppgc: Rework prefinalizers" · f46c4858
      Michael Lippautz authored
      This reverts commit cf25b3bc.
      
      Reason for revert: https://crbug.com/1307471. TraceTrait must only be used during marking.
      
      Original change's description:
      > cppgc: Rework prefinalizers
      >
      > Move the check for whether an object is live or dead out of the
      > prefinalizer trampoline. Moving it into the backend allows for
      > inlining the check which avoids a call to the trampoline for live
      > objects.
      >
      > On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often
      > ~2k finalizers registered. In order to avoid memory overhead in the
      > range of a few KB, we store the fact whether the object points to the
      > base object payload in the LSB of the pointer. For caged builds this
      > is replaced with just storing the index into the cage for both object
      > and base object payload.
      >
      > Locally saves around ~10% of atomic sweeping processing time which is
      > in the order of .05ms.
      >
      > Bug: v8:12698
      > Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79442}
      
      Bug: v8:12698, chromium:1307471
      Change-Id: I5c4e70d46cb99af66c77f0c013625b6af6c6eb8e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535781
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79527}
      f46c4858
  6. 10 Mar, 2022 1 commit
    • Michael Lippautz's avatar
      cppgc: Rework prefinalizers · cf25b3bc
      Michael Lippautz authored
      Move the check for whether an object is live or dead out of the
      prefinalizer trampoline. Moving it into the backend allows for
      inlining the check which avoids a call to the trampoline for live
      objects.
      
      On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often
      ~2k finalizers registered. In order to avoid memory overhead in the
      range of a few KB, we store the fact whether the object points to the
      base object payload in the LSB of the pointer. For caged builds this
      is replaced with just storing the index into the cage for both object
      and base object payload.
      
      Locally saves around ~10% of atomic sweeping processing time which is
      in the order of .05ms.
      
      Bug: v8:12698
      Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79442}
      cf25b3bc
  7. 09 Mar, 2022 1 commit
  8. 02 Mar, 2022 1 commit
  9. 01 Mar, 2022 1 commit
  10. 17 Feb, 2022 1 commit
  11. 14 Feb, 2022 1 commit
    • Anton Bikineev's avatar
      cppgc: young-gen: Implement GenerationalBarrier for source objects · 3f5c2dda
      Anton Bikineev authored
      The generational barrier for source objects records the entire source
      object to be processed later during remembered set visitation. It's
      planned to be used for Blink backing stores when an inlined object (or a
      range thereof) is added (HeapAllocator::NotifyNewObject(s)).
      
      An alternative approach would be to eagerly process the inlined objects
      using a custom callback. However, this requires changing Visitors to
      bring slots into the context. This approach should better work for
      scenarios where small ranges or single elements are added, to avoid
      processing potentially large backing stores. The followup CL implements
      this idea.
      
      Bug: chromium:1029379
      Change-Id: Iacb59e4b10a66354526ed293d7f43f14d8761a8f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460402Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Anton Bikineev <bikineev@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79073}
      3f5c2dda
  12. 04 Feb, 2022 1 commit
  13. 03 Feb, 2022 1 commit
  14. 01 Feb, 2022 1 commit
  15. 25 Jan, 2022 1 commit
  16. 21 Jan, 2022 1 commit
  17. 13 Jan, 2022 1 commit
  18. 06 Jan, 2022 1 commit
  19. 05 Jan, 2022 1 commit
  20. 07 Dec, 2021 1 commit
  21. 06 Dec, 2021 1 commit
  22. 30 Nov, 2021 2 commits
  23. 29 Nov, 2021 1 commit
  24. 26 Nov, 2021 3 commits
  25. 25 Nov, 2021 1 commit
  26. 23 Nov, 2021 1 commit
  27. 03 Nov, 2021 1 commit
    • Anton Bikineev's avatar
      cppgc: Force EBO to always work with GCed · 92eae6d1
      Anton Bikineev authored
      Currently, in the following struct
      
      struct LayoutObject : GarbageCollected<>, MixinA, MixinB {};
      
      the subobject that corresponds to the first base GarbageCollected<>
      always takes up some space (one word). The empty-base-optimization
      doesn't happen because the second base (MixinA) has the same subobject
      as the first base (GarbageCollected), which is the most parent class
      GarbageCollectedBase. The compiler can't "merge" them because it must
      guarantee that distinct objects of the same type have distinct
      addresses.
      
      The attribute [[no_unique_address]] doesn't work for base classes,
      unfortunately (but is a good idea for a Standard proposal). As a
      solution, the CL simply removes GarbageCollectedBase.
      
      Bug: chromium:1260797
      Change-Id: I415b10a5fbcebce3d6ee97b8870ea9ae90f383a8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3259654
      Commit-Queue: Anton Bikineev <bikineev@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77693}
      92eae6d1
  28. 26 Oct, 2021 1 commit
  29. 25 Oct, 2021 1 commit
  30. 18 Oct, 2021 1 commit
  31. 12 Oct, 2021 2 commits
  32. 30 Sep, 2021 2 commits
  33. 27 Sep, 2021 1 commit
  34. 24 Sep, 2021 1 commit