-
Michael Lippautz authored
Move the check for whether an object is live or dead out of the prefinalizer trampoline. Moving it into the backend allows for inlining the check which avoids a call to the trampoline for live objects. On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often ~2k finalizers registered. In order to avoid memory overhead in the range of a few KB, we store the fact whether the object points to the base object payload in the LSB of the pointer. For caged builds this is replaced with just storing the index into the cage for both object and base object payload. Locally saves around ~10% of atomic sweeping processing time which is in the order of .05ms. Bug: v8:12698 Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79442}
cf25b3bc