v8/gni
Michael Lippautz 24ca73004e cppgc: Implement slim write barrier
Introduces a slim write barrier for Oilpan behind
`cppgc_enable_slim_write_barrier` that is enabled by default. The slim
write barrier only performs a single approximate global check for
whether the write barrier is needed and delegates all other checks to
a slow path call. This is beneficial in configurations that do not need
many checks for the barrier overall, i.e., configurations without
young generation. Young generation is off by default which is why this
approach is beneficial.

On Speedometer the write barrier is hit 75M times with a fast bailout
of 99.3%. Progression on Speedometer2 is somewhere around 0.2-0.5%.

The resulting code embedded in another function is only 34 bytes
compared to 128 bytes before. See attached bug for detailed assembly
snippet.

Change-Id: I6869513186e7a26104c46f1f2ac2cfa855689f64
Bug: chromium:1406464
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4152488
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#85232}
2023-01-11 18:54:57 +00:00
..
OWNERS [fuchsia] Remove v8.cmx, as it is no longer used 2022-09-13 06:28:54 +00:00
proto_library.gni Add exclude_imports flag to proto_library 2022-06-24 15:39:19 +00:00
protoc.py [infra] Change all Python shebangs to Python3 2022-08-05 14:55:00 +00:00
release_branch_toggle.gni Consolidate arguments that change together on branch cut 2022-01-20 11:20:09 +00:00
snapshot_toolchain.gni v8: Explicitly set v8_snapshot_toolchain to host_toolchain when host_cpu == target_cpu 2022-11-08 19:29:22 +00:00
split_static_library.gni [build] Move split_static_library.gni from Chromium repo 2019-11-04 15:45:54 +00:00
v8.cml [fuchsia] Reland: Migrate d8 to a component framework v2 Fuchsia component 2022-09-09 12:12:17 +00:00
v8.gni cppgc: Implement slim write barrier 2023-01-11 18:54:57 +00:00