d76064df4f
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} |
||
---|---|---|
.. | ||
internal | ||
allocation.h | ||
common.h | ||
cross-thread-persistent.h | ||
custom-space.h | ||
default-platform.h | ||
DEPS | ||
ephemeron-pair.h | ||
explicit-management.h | ||
garbage-collected.h | ||
heap-consistency.h | ||
heap-state.h | ||
heap-statistics.h | ||
heap.h | ||
liveness-broker.h | ||
macros.h | ||
member.h | ||
name-provider.h | ||
object-size-trait.h | ||
OWNERS | ||
persistent.h | ||
platform.h | ||
prefinalizer.h | ||
process-heap-statistics.h | ||
README.md | ||
sentinel-pointer.h | ||
source-location.h | ||
testing.h | ||
trace-trait.h | ||
type-traits.h | ||
visitor.h |
C++ Garbage Collection
This directory provides an open-source garbage collection library for C++.
The library is under construction, meaning that all APIs in this directory are incomplete and considered unstable and should not be used.