v8/test/unittests/heap
Anton Bikineev 51d2256b8a cppgc: Conservatively scan compressed pointers
Due to collections with inlined storage, Oilpan still supports on-stack
Members, which are always compressed if pointer compression is enabled.
This CL scans halfwords (together with full words) on stack to find
potential pointers. Since on-heap pointers can only be compressed and
in-construction objects always reside on heap, only halfwords need to be
scanned for them.

The alternative potential followup approaches:
1) Use a separate uncompressed type for pointer in inlined collections;
2) Dynamically register regions of stack containing compressed pointers.

Bug: chromium:1325007
Change-Id: Ia706fd8e7383d30aff11f4014faa9edd3d289a55
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644959
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80747}
2022-05-25 14:04:41 +00:00
..
base [heap] Improve accounting of PagedSpace::CommittedPhysicalMemory() 2022-03-09 18:28:21 +00:00
cppgc cppgc: Conservatively scan compressed pointers 2022-05-25 14:04:41 +00:00
cppgc-js [api] Rework heap snapshot exposing internals 2022-05-06 08:10:40 +00:00
allocation-observer-unittest.cc [heap] Support removing of observers during Step() 2020-08-17 10:42:32 +00:00
bitmap-test-utils.h [heap] Relax accessing markbits in ranges. 2019-02-25 15:28:41 +00:00
bitmap-unittest.cc [heap] Fix an out-of-bounds access in the marking bitmap 2020-04-20 09:07:57 +00:00
code-object-registry-unittest.cc [heap] Split out paged-spaces.h 2020-05-14 19:25:25 +00:00
embedder-tracing-unittest.cc [api] Remove APIs for resurrecting finalizers 2022-04-21 07:05:25 +00:00
gc-idle-time-handler-unittest.cc Reland "Fix -Wimplicit-int-float-conversions." 2021-06-29 16:36:18 +00:00
gc-tracer-unittest.cc heap: Inline GCTracer::Scope constructor and destructor 2022-04-13 13:17:39 +00:00
heap-controller-unittest.cc [cleanup] Replace all remaining Min/Max uses with std::min/max 2020-11-24 17:32:01 +00:00
heap-unittest.cc Split V8_OS_MACOSX into V8_OS_DARWIN and V8_OS_MACOS 2022-02-18 10:24:59 +00:00
heap-utils.cc heap: Refactor sweeping finalization for young GC 2022-03-08 16:48:43 +00:00
heap-utils.h heap: Convert embedder tracing tests to unittests 2022-04-08 12:43:55 +00:00
index-generator-unittest.cc [Heap]: Implement IndexGenerator for Jobs use cases. 2020-09-11 19:25:33 +00:00
lab-unittest.cc [heap] Add Heap::NotifyObjectSizeChange for right-trimming 2022-04-27 08:01:24 +00:00
list-unittest.cc [heap] Make Heap::Contains const 2020-05-13 13:19:22 +00:00
local-factory-unittest.cc [compiler] Introduce ReusableUnoptimizedCompileState 2021-12-08 11:14:27 +00:00
local-heap-unittest.cc Reland "[heap] Optimize time to reach global safepoint" 2022-01-12 10:35:25 +00:00
marking-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
marking-worklist-unittest.cc cppgc-js, heap: Concurrently push references from v8 to Oilpan 2021-12-27 11:34:29 +00:00
memory-reducer-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
object-start-bitmap-unittest.cc heap: Recalculate the object start bitmap if needed 2022-05-16 08:48:56 +00:00
object-stats-unittest.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
persistent-handles-unittest.cc [handles] Make DetachPersistent insert into ordered_blocks_ 2020-08-05 12:03:52 +00:00
progressbar-unittest.cc heap: Fix TSAN race when setting a flag after page initialization 2021-08-19 10:28:57 +00:00
safepoint-unittest.cc [test][cleanup] Fix -Wshadow warnings in unittests 2021-09-27 08:59:01 +00:00
slot-set-unittest.cc [heap] Simplify Sweeper::CleanupInvalidTypedSlotsOfFreeRanges 2022-04-06 13:22:03 +00:00
spaces-unittest.cc [heap] Add Heap::NotifyObjectSizeChange for right-trimming 2022-04-27 08:01:24 +00:00
unmapper-unittest.cc [sandbox] Turn V8_SANDBOX into V8_ENABLE_SANDBOX 2022-05-13 16:23:23 +00:00