• 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
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...