-
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: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73471}
a03a868e