1. 26 Apr, 2021 1 commit
  2. 17 Mar, 2021 3 commits
    • Michael Lippautz's avatar
      Reland "cppgc: Rework GC info creation" · a03a868e
      Michael Lippautz authored
      This is a reland of d76064df
      
      Original change's description:
      > cppgc: Rework GC info creation
      >
      > Previously, GCInfoTrait relied on the non-trivial constructor of a
      > static object for registering a new GCInfo object. The generated code
      > is required to be thread-safe which is achieved by introducing guard
      > variables in the compiler.
      >
      > The new version is similar to Blink in that it relies on zero
      > initialization of a trivially constructible atomic.
      >
      > Compared to guard variables that are created per GCInfo registration,
      > the atomic creates less bloat (~20bytes/type) and also results in a
      > better fast path.
      >
      > Minimum example: https://godbolt.org/z/qrdTf8
      >
      > Bug: chromium:1056170
      > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73463}
      
      Bug: chromium:1056170
      Change-Id: I01e60beabc1d279d352361657f408f113aac768e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767021
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Omer Katz <omerkatz@chromium.org>
      Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73471}
      a03a868e
    • Maya Lekova's avatar
      Revert "cppgc: Rework GC info creation" · 8b9d0138
      Maya Lekova authored
      This reverts commit d76064df.
      
      Reason for revert: Breaking MSAN - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37390/overview
      
      Original change's description:
      > cppgc: Rework GC info creation
      >
      > Previously, GCInfoTrait relied on the non-trivial constructor of a
      > static object for registering a new GCInfo object. The generated code
      > is required to be thread-safe which is achieved by introducing guard
      > variables in the compiler.
      >
      > The new version is similar to Blink in that it relies on zero
      > initialization of a trivially constructible atomic.
      >
      > Compared to guard variables that are created per GCInfo registration,
      > the atomic creates less bloat (~20bytes/type) and also results in a
      > better fast path.
      >
      > Minimum example: https://godbolt.org/z/qrdTf8
      >
      > Bug: chromium:1056170
      > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750
      > Reviewed-by: Omer Katz <omerkatz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#73463}
      
      Bug: chromium:1056170
      Change-Id: I71960103513d6db7789d752b70727d014c2e6406
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767020
      Auto-Submit: Maya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/master@{#73466}
      8b9d0138
    • Michael Lippautz's avatar
      cppgc: Rework GC info creation · d76064df
      Michael Lippautz authored
      Previously, GCInfoTrait relied on the non-trivial constructor of a
      static object for registering a new GCInfo object. The generated code
      is required to be thread-safe which is achieved by introducing guard
      variables in the compiler.
      
      The new version is similar to Blink in that it relies on zero
      initialization of a trivially constructible atomic.
      
      Compared to guard variables that are created per GCInfo registration,
      the atomic creates less bloat (~20bytes/type) and also results in a
      better fast path.
      
      Minimum example: https://godbolt.org/z/qrdTf8
      
      Bug: chromium:1056170
      Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73463}
      d76064df
  3. 10 Feb, 2021 1 commit
  4. 17 Nov, 2020 1 commit
  5. 13 May, 2020 1 commit
  6. 08 Apr, 2020 1 commit
  7. 24 Mar, 2020 1 commit
    • Michael Lippautz's avatar
      cppgc: Add GCInfo machinery · 4132d725
      Michael Lippautz authored
      GCInfo and its related infrastructure is used to record information
      about types. Currently, we store finalization and vtable information.
      Future changes will introduce naming and tracing, similar to Oilpan in
      Blink.
      
      Information is stored in a process-wide global table that is
      maintained at runtime. For static builds such information can be
      recorded in the binary without the runtime overhead which is future
      work.
      
      This ports `third_party/blink/renderer/platform/heap/gc_info.{h,cc}`
      on a semantic level. In addition to adjusting to V8's needs, we also
      re-commit the already filled parts of the info table as read-only when
      possible, making it harder to override type information.
      
      Bug: chromium:1056170
      Change-Id: Ib01eb24e6f8a94a4a647efde7af37689f8c20ba2
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2111214
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66847}
      4132d725