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