- 26 Apr, 2021 1 commit
-
-
Michael Lippautz authored
- Move LsanPageAllocator to base; - Use LsanPageAllocator in PageBackend that serves managed C++ objects; - Remove spurious TODO for GCInfoTable which should not use the LSAN-aware backend; Bug: chromium:1056170 Change-Id: I2caa11443ab44da5164f1c29339e302bffb49228 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850157 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74192}
-
- 17 Mar, 2021 3 commits
-
-
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}
-
Maya Lekova authored
This reverts commit d76064df. Reason for revert: Breaking MSAN - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37390/overview 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: I71960103513d6db7789d752b70727d014c2e6406 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767020 Auto-Submit: Maya Lekova <mslekova@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73466}
-
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: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73463}
-
- 10 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Model cppgc::InitializeProcess()/cppgc::ShutdownProcess() similar to V8's InitializePlatform()/ShutdownPlatform() in that we allow the pair to be called multiple times. GCInfoTable will not be freed on ShutdownProcess though as the current global design uses static indices to retrieve per-type metadata. Drive-by: Remove stale ShutdownProcess() call. Change-Id: Ia9b50325a964e85a72f3ef218e72bc386b69be51 Bug: chromium:1176416, chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685171Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72630}
-
- 17 Nov, 2020 1 commit
-
-
Michael Lippautz authored
Allows embedders to allocate C++ objects on the internal managed C++ heap. Bug: chromium:1056170 Change-Id: Ibd81d0fc915478a81f14e8ab12a631e442790f04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2536642Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#71225}
-
- 13 May, 2020 1 commit
-
-
Omer Katz authored
This is needed to trace objects found durinbg stack scanning. Bug: chromium:1056170 Change-Id: I1280d98f2fe69281c514b3a7d4a57f909a2eed96 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190425 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67788}
-
- 08 Apr, 2020 1 commit
-
-
Anton Bikineev authored
Headers containing only implementation details are better to stay in a separate dir to indicate the user that they shouldn't be included. Bug: chromium:1056170 Change-Id: I10f84ddf709b146396aadc820ec33bc6a49b2dac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139585Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67050}
-
- 24 Mar, 2020 1 commit
-
-
Michael Lippautz authored
GCInfo and its related infrastructure is used to record information about types. Currently, we store finalization and vtable information. Future changes will introduce naming and tracing, similar to Oilpan in Blink. Information is stored in a process-wide global table that is maintained at runtime. For static builds such information can be recorded in the binary without the runtime overhead which is future work. This ports `third_party/blink/renderer/platform/heap/gc_info.{h,cc}` on a semantic level. In addition to adjusting to V8's needs, we also re-commit the already filled parts of the info table as read-only when possible, making it harder to override type information. Bug: chromium:1056170 Change-Id: Ib01eb24e6f8a94a4a647efde7af37689f8c20ba2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2111214 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66847}
-