v8/test
Jake Hughes 5f6aa2e5bf [heap] Add object start bitmap for conservative stack scanning
With conservative stack scanning enabled, a snapshot of the call stack
upon entry to GC will be used to determine part of the root-set. When
the collector walks the stack, it looks at each value and determines
whether it could be a potential on-heap object pointer. However, unlike
with Handles, these on-stack pointers aren't guaranteed to point to the
start of the object: the compiler may decide hide these pointers, and
create interior pointers in C++ frames which the GC doesn't know about.

The solution to this is to include an object start bitmap in the header
of each page. Each bit in the bitmap represents a word in the page
payload which is set when an object is allocated. This means that when
the collector finds an arbitrary potential pointer into the page, it can
walk backwards through the bitmap until it finds the relevant object's
base pointer. To prevent the bitmap becoming stale after compaction, it
is rebuilt during object sweeping.

This is experimental, and currently only works with inline allocation
disabled, and single generational collection.

Bug: v8:10614
Change-Id: I28ebd9562f58f335f8b3c2d1189cdf39feaa1f52
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375195
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69615}
2020-08-31 07:10:36 +00:00
..
benchmarks Fix csuite compare command 2020-07-24 15:58:53 +00:00
cctest [heap] Add object start bitmap for conservative stack scanning 2020-08-31 07:10:36 +00:00
common [wasm][fuzzer] Fix BigInt parameters 2020-08-26 14:22:19 +00:00
debugger [nci] Change testing mode to --turbo-nci-as-midtier 2020-08-20 12:54:40 +00:00
debugging [Py3] Fix flake8 warnings 2020-07-10 16:57:15 +00:00
fuzzer [wasm-simd] Move bitmask into SIMD MVP 2020-08-26 21:35:20 +00:00
fuzzilli Integrate fuzzilli into v8 2020-06-03 09:53:24 +00:00
inspector [inspector] Make collectGarbage of HeapProfiler precise 2020-08-18 07:24:14 +00:00
intl Change the order of the DateTimeFormat resolved 2020-08-27 20:39:05 +00:00
js-perf-test [super property speed] js-perf-test: minor formatting fix 2020-08-25 08:00:13 +00:00
memory [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +00:00
message Revert "Reland^3 "[flags] warn about contradictory flags"" 2020-08-17 19:34:18 +00:00
mjsunit [ia32][wasm-simd] Fix aligned moves in codegen 2020-08-28 22:59:56 +00:00
mkgrokdump [heap] Move BaseSpace into base-space.h 2020-06-19 09:38:24 +00:00
mozilla [Respect] Prefer inclusive terms 2020-06-22 18:11:23 +00:00
test262 Roll test262 2020-08-27 23:35:05 +00:00
torque Reland "[torque] typed context slot access" 2020-08-06 11:32:38 +00:00
unittests [heap] Add object start bitmap for conservative stack scanning 2020-08-31 07:10:36 +00:00
wasm-api-tests [ukm][wasm] Add event WasmModuleDecoded 2020-08-17 12:44:33 +00:00
wasm-js [wasm] Update spec tests 2020-08-20 17:52:55 +00:00
wasm-spec-tests [wasm] Update spec tests 2020-08-20 17:52:55 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn Add google_benchmark depdendency 2020-07-02 20:11:29 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00