v8/test
Dominik Inführ 2b79eefed3 Reland^2: [heap] Store size with invalidated object
This is a reland of commit 23b2d571a7

When updating pointers during a full GC, a page might not be swept
already. In such cases there might be invalid objects and slots
recorded in free memory. Updating tagged slots in free memory is fine
even though not strictly necessary.

However, the GC also needs to calculate the size of potentially dead
invalid objects in order to be able to check whether a slot is within
that object. But since that object is dead, its map might be dead as
well which makes size calculation impossible on such objects. The CL
changes this to cache the size of invalid objects. A follow-up CL will
also check the marking bit of invalid objects.

Reason for reverts:

Revert #2: In-object slack tracking on JSObjects doesn't update the
cached size of invalidated objects. The fix here was to stop
invalidating recorded slots on JSObjects at all and avoid that problem
completely (see https://crrev.com/c/3620274).

Revert #1: Not all size changes go through NotifyObjectLayoutChange, so
https://crrev.com/c/3607992 introduced NotifyObjectSizeChange as a
bottleneck for object size changes/right-trimming. This method is
now used to update the size of invalidated objects.

Bug: v8:12578, chromium:1316289
Change-Id: I0478d04601c0270ddb39419ca6cf98719951eb4d
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3623542
Reviewed-by: Jakob Linke <jgruber@chromium.org>
Reviewed-by: Patrick Thier <pthier@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#80344}
2022-05-03 14:36:28 +00:00
..
benchmarks [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
bigint [bigint][test] Better random input generation 2021-09-08 15:39:27 +00:00
cctest Reland^2: [heap] Store size with invalidated object 2022-05-03 14:36:28 +00:00
common Reland "[rwx][mac] Support fast W^X permission switching on Apple Silicon (M1)" 2022-04-28 14:08:11 +00:00
debugger [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
debugging [d8][mjsunit][tools] Improve d8 file API 2021-06-01 13:37:57 +00:00
fuzzer [liftoff] Move more options into LiftoffOptions 2022-04-19 16:21:21 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector Distinguish untrusted clients in v8 inspector and disable Profiler, HeapProfiler and Schema CDP domains for them. 2022-05-03 12:38:17 +00:00
intl [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
js-perf-test [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
memory [snapshot] Fix the Memory.json benchmark 2021-04-28 07:54:34 +00:00
message [error] Improve error message for array spread 2022-04-15 01:23:54 +00:00
mjsunit [web snap] Support Symbols as property keys 2022-05-03 12:54:37 +00:00
mkgrokdump [py3] Bump v8heapconstants.py and related files 2022-04-04 13:27:13 +00:00
mozilla [test] Clean up Py2 code 2022-03-17 09:12:36 +00:00
test262 [flags] Rename --opt to --turbofan 2022-05-03 12:10:30 +00:00
torque Reland "Reland "[Torque] Generalize Torque literals to larger size"" 2022-02-04 09:40:24 +00:00
unittests cppgc: Allow overriding heap object name at runtime 2022-05-03 12:19:57 +00:00
wasm-api-tests [test] Clean up Py2 code 2022-03-17 09:12:36 +00:00
wasm-js [wasm] Disable limits test on Android 2022-04-28 12:53:38 +00:00
wasm-spec-tests [wasm] Remove SIMD proposal tests 2022-04-28 05:22:59 +00:00
webkit [test] Disable failing MSVC test 2021-12-01 15:51:59 +00:00
BUILD.gn Reland^2 "[bigint] Karatsuba multiplication" 2021-06-07 11:01:14 +00:00
OWNERS