v8/test
Jakob Gruber 1277bb5c55 [compiler] Support GetPropertyAccessInfo in a concurrent setting
Until this CL, the JSHeapBroker::GetPropertyAccessInfo (GPAI) process
was as follows:

 1. GPAI is called on the main thread (MT) during the serialization
    phase to create and cache PAIs.
 2. GPAI is called again from the background thread (BT); only cached
    PAIs from step 1 are usable.

As part of concurrent inlining, the goal is to move GPAI fully to the
background thread. This CL takes a major step in that direction by
making GPAI itself callable from the BT without resorting solely to PAIs
that were previously cached on the MT.

There are two main reasons why GPAI previously had to run on the MT:

 a) Concurrent access to Maps and other heap objects.
 b) Serialization and creation of ObjectRefs for objects discovered
    during GPAI.

This CL addresses only reason a) and leaves b) for future work. This
is done by keeping the two-pass approach, s.t. the initial call of
GPAI on the MT discovers and serializes objects. We then clear all
cached PAIs. The second call of GPAI on the BT thus runs full logic in a
concurrent setting.

Once all relevant objects (= maps and prototypes) no longer require
MT-serialization, reason b) is also addressed and the first pass can be
removed.

The new logic is implemented behind the runtime flag
--turbo-concurrent-get-property-access-info (default true), intended
to be removed in the future.

Bug: v8:7790
Change-Id: Idbdbfe091d7316529246a686bb6d71c2a0f06f8b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2817793
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Auto-Submit: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#74120}
2021-04-22 10:59:01 +00:00
..
benchmarks Make Google benchmark dependency a default 2021-04-21 12:19:40 +00:00
cctest [riscv64][codegen] Add static interface descriptors 2021-04-22 01:04:10 +00:00
common [wasm] Fix interpreter EH stack height bug 2021-04-12 18:00:33 +00:00
debugger Reland "[inspector] Report [[Prototype]] as internal property." 2021-04-12 08:44:13 +00:00
debugging [wasm] Rename kWasmStmt -> kWasmVoid 2021-03-22 07:58:18 +00:00
fuzzer Reland "[api] Add v8::Isolate::ThrowError helper" 2021-04-16 11:48:05 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector [test] Skip flaky inspector/runtime-call-stats/enable-disable 2021-04-20 18:05:49 +00:00
intl [Intl] Update ICU to 69-1 2021-04-20 22:37:09 +00:00
js-perf-test Update OWNERS in test/* 2021-02-25 14:26:24 +00:00
memory Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
message [wasm] Change trace memory instr offset to be relative to module 2021-04-21 20:01:50 +00:00
mjsunit [compiler] Support GetPropertyAccessInfo in a concurrent setting 2021-04-22 10:59:01 +00:00
mkgrokdump [build] Fold v8_wrappers into v8_libbase 2021-02-25 10:56:20 +00:00
mozilla [compiler, infra] Add a --stress-concurrent-inlining flag and a bot 2021-01-29 12:05:03 +00:00
test262 Ship the relative indexing method .at 2021-04-14 16:45:25 +00:00
torque [torque] Add LazyNode support 2021-02-23 16:51:53 +00:00
unittests [TurboFan] Fix max double string length in JSNativeContextSpecialization 2021-04-21 13:29:50 +00:00
wasm-api-tests Reland "[no-wasm] Exclude src/wasm from compilation" 2021-03-11 14:29:26 +00:00
wasm-js [wasm] Update spec tests 2021-04-14 13:48:55 +00:00
wasm-spec-tests [riscv64] Fix NaN related issue 2021-04-16 15:09:35 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn [no-wasm] Exclude more targets from build 2021-03-09 11:25:54 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00