v8/test/unittests
Dominik Inführ 60843b426b Use list of invalidated objects for old-to-new refs
Instead of inserting "deletion" entries into the store buffer, keep a
list of invalidated objects to filter out invalid old-to-new slots.

The first CL https://crrev.com/c/1704109 got reverted because both the
sweeper and the main task were modifying the invalidated slots data
structure concurrently. This CL changes this, such that the sweeper
only modifies the invalidated slots during the final atomic pause when
the main thread is not running. The sweeper does not need to clean this
data structure after the pause, since the "update pointers" phase
already removed all invalidated slots.

The second CL https://crrev.com/c/1733081 got reverted because the
sweeper might find more free space than the full GC before it. If an
object shrinks after the pause but before the sweep, the invalidated
object might span free memory and potentially new allocated objects.
Therefore shrink invalidated objects when processing swept pages on
the main thread. Also clean recorded slots in the gap.

TBR=petermarshall@chromium.org

Bug: v8:9454
Change-Id: I80d1fa3bbc24e97f7c97a373aaad66f105456f12
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751795
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63239}
2019-08-19 11:40:09 +00:00
..
api Calls to {console} require an access check for the provided arguments 2019-08-08 07:19:54 +00:00
asmjs Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
assembler Move architecture dependent files 2019-05-28 14:02:15 +00:00
base Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
codegen Move unittest files 2019-05-27 08:52:23 +00:00
compiler Revert "[CSA][cleanup] TNodify some methods related to prototype and property lookup" 2019-08-19 08:38:48 +00:00
compiler-dispatcher [wasm] Remove unused stack limit in export wrappers 2019-07-29 12:52:53 +00:00
date Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
diagnostics Move unittest files 2019-05-27 08:52:23 +00:00
execution [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
heap Use list of invalidated objects for old-to-new refs 2019-08-19 11:40:09 +00:00
interpreter Revert "[CSA][cleanup] TNodify some methods related to prototype and property lookup" 2019-08-19 08:38:48 +00:00
libplatform Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
logging [counters] Introduce proper bottleneck for FunctionCallback. 2019-06-12 09:04:38 +00:00
numbers [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
objects Revert ""Reland x4 [arraybuffer] Rearchitect backing store ownership"" 2019-08-05 15:33:47 +00:00
parser Move remaining files in src/ 2019-05-24 18:24:36 +00:00
profiler [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
regress Move relevant files to src/execution 2019-05-22 08:36:33 +00:00
strings [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
tasks Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
torque [torque] Replace ReferenceType by generic Torque struct Reference<T> 2019-07-26 14:26:51 +00:00
utils [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
wasm Revert ""Reland x4 [arraybuffer] Rearchitect backing store ownership"" 2019-08-05 15:33:47 +00:00
zone [zone] Remove segment pooling from accounting allocator 2019-03-01 09:25:48 +00:00
BUILD.gn Revert ""Reland x4 [arraybuffer] Rearchitect backing store ownership"" 2019-08-05 15:33:47 +00:00
DEPS Move unit tests to test/unittests. 2014-10-01 08:34:25 +00:00
run-all-unittests.cc Reland "Add test to show the crashing of TimeZone::AdoptDefault" 2019-05-16 09:38:43 +00:00
test-helpers.cc [SFI] Always store function_literal_id in SFI. 2019-06-21 16:23:27 +00:00
test-helpers.h [Compiler] Remove CompilerDispatcherJob and use BackgroundCompileTask directly 2018-10-09 10:39:27 +00:00
test-utils.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-utils.h [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
unittests.status [build] disable unittests failing on Win64 release 2019-08-12 10:21:18 +00:00