v8/test/cctest
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
..
compiler [turbofan] Simplify handling of calls with saved registers. 2019-08-01 08:59:15 +00:00
heap Use list of invalidated objects for old-to-new refs 2019-08-19 11:40:09 +00:00
interpreter Add GetIterator bytecode to load object[Symbol.iterator] in accumulator 2019-08-09 07:58:32 +00:00
libplatform [tracing] Replace semaphores with {Start,Stop}Blocking 2019-08-06 15:11:15 +00:00
libsampler [cpu-profiler] Only record SIGPROF-based samples for samplers that request samples 2019-02-13 09:29:38 +00:00
parsing [Parsing] Fix a bug in UpdateBufferPointers where it incorrectly updated the buffer range. 2019-08-13 14:20:17 +00:00
torque [torque] Infer type arguments of generic struct initializers 2019-08-02 09:10:01 +00:00
wasm Formatting fixes for test file 2019-08-16 17:27:16 +00:00
assembler-helper-arm.cc [cleanup] Drop some dead (Macro)Assembler code 2019-05-27 08:53:28 +00:00
assembler-helper-arm.h Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
BUILD.gn Revert ""Reland x4 [arraybuffer] Rearchitect backing store ownership"" 2019-08-05 15:33:47 +00:00
cctest.cc [tracing] Separate tracing implementations and add perfetto tests 2019-07-18 15:40:12 +00:00
cctest.h [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
cctest.status [regexp] Naive tiering-up 2019-08-12 08:41:48 +00:00
collector.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
DEPS [tracing] Fix TracingCpuProfiler test for Perfetto 2019-08-05 15:54:07 +00:00
disasm-regex-helper.cc [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
disasm-regex-helper.h [turbofan] Improve load poisoning tests. 2019-07-02 17:55:04 +00:00
expression-type-collector-macros.h [cleanup] Fix remaining (D)CHECK macro usages 2017-10-18 10:12:31 +00:00
gay-fixed.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-fixed.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-precision.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-precision.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
gay-shortest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
gay-shortest.h Move utility code to src/utils 2019-05-23 14:13:34 +00:00
OWNERS [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +00:00
print-extension.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
print-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
profiler-extension.cc Reland "[Compile] Ensure we don't access the native context during bytecode finalization." 2018-10-26 22:33:56 +00:00
profiler-extension.h [cleanup] Mark test/ methods in subclasses with override. 2018-09-17 07:40:00 +00:00
scope-test-helper.h [parser] Various Scope and Context speedups 2019-01-28 13:06:03 +00:00
setup-isolate-for-tests.cc [interpreter] Always put bytecode handlers in builtins table 2018-09-20 09:58:15 +00:00
setup-isolate-for-tests.h Move initialization code into src/init 2019-05-16 12:36:15 +00:00
test-access-checks.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
test-accessor-assembler.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-accessors.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-allocation.cc [utils] Fix Malloced implementation 2019-07-15 09:59:22 +00:00
test-api-accessors.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-api-array-buffer.cc Revert ""Reland x4 [arraybuffer] Rearchitect backing store ownership"" 2019-08-05 15:33:47 +00:00
test-api-interceptors.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-api-stack-traces.cc [debug] Report line numbers for Function constructor functions correctly 2019-08-08 13:49:17 +00:00
test-api-typed-array.cc [typed-arrays] Introduce JSTypedArray::kMaxSizeInHeap constant 2019-06-18 17:19:19 +00:00
test-api.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-api.h [test-api] Extract arraybufs and typed arrays 2019-06-17 15:27:01 +00:00
test-array-list.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-assembler-arm64.cc [arm64] Add support for pointer authentication instructions 2019-07-24 17:00:26 +00:00
test-assembler-arm.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-assembler-ia32.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-assembler-mips64.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-assembler-mips.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-assembler-ppc.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-assembler-s390.cc [s390]tm family test: change a label name 2019-07-22 20:05:10 +00:00
test-assembler-x64.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-atomicops.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bignum-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bignum.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-bit-vector.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-circular-queue.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-code-layout.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-code-stub-assembler.cc Increase maximum arguments for CallCFunction 2019-08-14 13:33:21 +00:00
test-compiler.cc [api] Get ScriptOrModule from CompileFunctionInContext 2019-07-19 13:45:25 +00:00
test-constantpool.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-conversions.cc Reland "[utils] Make BitField final" 2019-07-29 14:20:58 +00:00
test-cpu-profiler.cc [tracing] Fix TracingCpuProfiler test for Perfetto 2019-08-05 15:54:07 +00:00
test-date.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-debug-helper.cc Reland "Add postmortem debugging helper library" 2019-07-31 14:30:19 +00:00
test-debug.cc [debugger] ignore receiver for construct frames for evaluate 2019-08-09 12:46:15 +00:00
test-decls.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-deoptimization.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dictionary.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-arm64.cc [arm64] Add support for pointer authentication instructions 2019-07-24 17:00:26 +00:00
test-disasm-arm.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-ia32.cc [wasm] Implement "atomic.fence" operator. 2019-07-19 09:14:42 +00:00
test-disasm-mips64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-mips.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-ppc.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-s390.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-disasm-x64.cc [wasm-simd] Use movddup instead of pshufd for 64x2 splats 2019-07-30 00:25:48 +00:00
test-diy-fp.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-double.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-elements-kind.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-extra.js [js] Remove CORE JS Natives (prologue.js), port extra utils to C++/Torque 2019-01-07 11:57:46 +00:00
test-factory.cc Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
test-fast-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-feedback-vector.cc Reland "[ic] Don't transition to premonomorphic state" 2019-08-05 15:51:47 +00:00
test-feedback-vector.h Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-field-type-tracking.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-fixed-dtoa.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-flags.cc [regexp] Naive tiering-up 2019-08-12 08:41:48 +00:00
test-func-name-inference.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-fuzz-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-global-handles.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-global-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-hashcode.cc [ptr-compr] Pass Isolate to JSObject::NormalizeProperties() 2019-06-11 11:11:10 +00:00
test-hashmap.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-heap-profiler.cc profiler: Allow querying SnapshotObjectId for native objects 2019-08-09 08:41:03 +00:00
test-icache.cc Move handles-related files to src/handles 2019-05-23 06:00:15 +00:00
test-identity-map.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-inobject-slack-tracking.cc [cleanup] Drop some occurrences of Isolate::Current 2019-06-26 19:39:21 +00:00
test-inspector.cc [inspector] fix typo in fromUTF16LE and cleanup test 2019-06-26 11:50:31 +00:00
test-intl.cc Better GetAvilableLocales check resources 2019-06-21 23:04:09 +00:00
test-javascript-arm64.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-arm64-variables.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-js-weak-refs.cc [WeakRefs] Make cleanup callback run as a task 2019-07-30 12:19:39 +00:00
test-liveedit.cc Add quotes around unexpected token SyntaxError 2019-06-11 06:11:58 +00:00
test-lockers.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-log-stack-tracer.cc [cleanup] Reduce frames.h include ball from 686 to ~270 2019-07-12 10:20:41 +00:00
test-log.cc [cleanup][heap] Improve heap iterator naming 2019-06-17 14:38:02 +00:00
test-macro-assembler-arm64.cc [ptr-compr][arm64] Use ldr_w to load on 32 bits for CompressedHeapConstants 2019-06-21 07:37:04 +00:00
test-macro-assembler-arm.cc [cleanup] Remove 'typedef struct' and 'typedef enum' 2019-05-28 12:17:35 +00:00
test-macro-assembler-mips64.cc [mips64][codegen] Remove dead argument to Assember::stop 2019-07-12 12:06:27 +00:00
test-macro-assembler-mips.cc [cleanup] Replace function typedefs by using declarations 2019-05-28 08:35:08 +00:00
test-macro-assembler-x64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-managed.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-mementos.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-modules.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-object.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-orderedhashtable.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-parsing.cc Initial implementation of optional chaining 2019-08-07 21:46:01 +00:00
test-platform.cc s390: Edited Generate_CEntry to correctly return buffer when built with clang 2018-09-05 07:01:16 +00:00
test-pointer-auth-arm64.cc [arm64] Add support for pointer authentication instructions 2019-07-24 17:00:26 +00:00
test-poison-disasm-arm64.cc [ptr-compr][turbofan] Specialize accesses known to be pointers. 2019-08-16 14:32:53 +00:00
test-poison-disasm-arm.cc Reland "[ic] Don't transition to premonomorphic state" 2019-08-05 15:51:47 +00:00
test-profile-generator.cc [cpu-profiler] Enable logging for the lifetime of each CpuProfiler 2019-07-26 19:57:02 +00:00
test-random-number-generator.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-regexp.cc [regexp] Naive tiering-up 2019-08-12 08:41:48 +00:00
test-representation.cc Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-roots.cc Revert ""Reland x4 [arraybuffer] Rearchitect backing store ownership"" 2019-08-05 15:33:47 +00:00
test-sampler-api.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-serialize.cc Remove bogus assertion for script contexts. 2019-08-12 14:22:27 +00:00
test-smi-lexicographic-compare.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-stack-unwinding-win64.cc Unwind V8 frames correctly on Windows ARM64 2019-07-31 06:24:45 +00:00
test-strings.cc [ptr-compr][cleanup] Replace READ_[WEAK_]FIELD with TaggedField<>::load() 2019-06-28 10:47:40 +00:00
test-strtod.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-symbols.cc Move utility code to src/utils 2019-05-23 14:13:34 +00:00
test-sync-primitives-arm64.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-sync-primitives-arm.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-thread-termination.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-threads.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
test-trace-event.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-traced-value.cc [tracing] Improve tracing signals for compilation/optimization. 2019-03-25 14:49:08 +00:00
test-transitions.cc [ptr-compr] Isolatify Map::MigrateToMap() and friends 2019-07-03 08:08:05 +00:00
test-transitions.h Move relevant files to src/objects 2019-05-20 08:57:47 +00:00
test-typedarrays.cc Enable cpplint 'runtime/references' warning 2019-07-08 09:59:36 +00:00
test-types.cc [turbofan] Disentangle header include chains 2019-07-05 14:26:05 +00:00
test-unboxed-doubles.cc [ptr-compr] Pass Isolate to JSObject::MigrateToMap() and friends 2019-06-11 09:58:36 +00:00
test-unscopables-hidden-prototype.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-unwinder.cc [cleanup] Avoid {Object::operator->} 2019-05-23 07:52:07 +00:00
test-usecounters.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-utils-arm64.cc Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils-arm64.h Move architecture dependent files 2019-05-28 14:02:15 +00:00
test-utils.cc [cleanup] Replace simple typedefs by using 2019-05-27 12:39:49 +00:00
test-version.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
test-weakmaps.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
test-weaksets.cc Move more relevant files to src/objects 2019-05-23 08:52:30 +00:00
testcfg.py Reland "Preparing v8 to use with python3 /test" 2019-03-20 09:56:06 +00:00
trace-extension.cc [cleanup] Avoid {Object::operator->} 2019-05-23 07:52:07 +00:00
trace-extension.h Move remaining files in src/ 2019-05-24 18:24:36 +00:00
unicode-helpers.cc Move string-related files to src/strings 2019-05-21 07:17:48 +00:00
unicode-helpers.h Move string-related files to src/strings 2019-05-21 07:17:48 +00:00