• 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
Name
Last commit
Last update
..
cppgc Loading commit data...
libplatform Loading commit data...
APIDesign.md Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
js_protocol-1.2.json Loading commit data...
js_protocol-1.3.json Loading commit data...
js_protocol.pdl Loading commit data...
v8-cppgc.h Loading commit data...
v8-fast-api-calls.h Loading commit data...
v8-inspector-protocol.h Loading commit data...
v8-inspector.h Loading commit data...
v8-internal.h Loading commit data...
v8-metrics.h Loading commit data...
v8-platform.h Loading commit data...
v8-profiler.h Loading commit data...
v8-unwinder-state.h Loading commit data...
v8-util.h Loading commit data...
v8-value-serializer-version.h Loading commit data...
v8-version-string.h Loading commit data...
v8-version.h Loading commit data...
v8-wasm-trap-handler-posix.h Loading commit data...
v8-wasm-trap-handler-win.h Loading commit data...
v8.h Loading commit data...
v8config.h Loading commit data...