v8/test
Georg Neis 8b87e36e43 [compiler][test] Give tests control over finalization
Some tests want to invalidate part of the VM state after an optimization
has consumed the old state but before the code is installed.

The existing mechanism for this is --block-concurrent-recompilation
and %UnblockConcurrentRecompilation(). The former suspends optimization
right after PrepareJob, before the background ExecuteJob phase. The
intrinsic can then be used to unblock it again.

This was good enough so far because the main "consume" work used to
happen on the main thread. With concurrent inlining this is no longer
true and we need something else.

This CL introduces three intrinsics:

%DisableOptimizationFinalization turns off automatic finalization of
background optimizations.

%FinalizeOptimization() can then be called at an appropriate time to
manually finalize (and thus install) the code and reenable automatic
finalization.

In case one wants to perform some action on the main thread after the
concurrent optimization has finished but before it is finalized, one can
do so with the help of %WaitForBackgroundOptimization() (see tests).

In a followup CL I'm removing the old mechanism since it now seems
redundant.

Bug: v8:12041, v8:7790
Change-Id: Ib7195789105922eb7e4bff86dc5bc11e96a4f97b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3071400
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76190}
2021-08-10 09:51:19 +00:00
..
benchmarks [test] Mark pdfjs as slow for TSAN builds 2021-07-28 14:03:46 +00:00
bigint [bigint] Define V8_ADVANCED_BIGINT_ALGORITHMS everywhere 2021-07-27 15:17:34 +00:00
cctest Reland "[wasm] fix float to/from int reinterpretation tests" 2021-08-09 21:44:49 +00:00
common [wasm][eh] Add WebAssembly.Exception.getArg() 2021-08-03 14:25:50 +00:00
debugger [sparkplug] Add support to flush only baseline code 2021-08-04 08:22:18 +00:00
debugging
fuzzer [inspector] Remove unused formatAccessorsAsProperties(). 2021-08-10 06:48:59 +00:00
fuzzilli
inspector [inspector] Remove unused formatAccessorsAsProperties(). 2021-08-10 06:48:59 +00:00
intl [Intl] throw instead of DCHECK while long locale 2021-08-03 07:33:29 +00:00
js-perf-test A jump-table implementation for constant case switch statements 2021-06-23 09:26:23 +00:00
memory
message [wasm] Print hash of anonymous scripts in stack traces 2021-08-06 17:14:55 +00:00
mjsunit [compiler][test] Give tests control over finalization 2021-08-10 09:51:19 +00:00
mkgrokdump
mozilla Reland "[test] Unmark TSAN tests as SLOW/SKIP" 2021-06-28 10:19:20 +00:00
test262 [runtime] Prevent performing GetOwnPropertyDescriptor on excluded keys 2021-08-09 14:27:41 +00:00
torque
unittests Reland "[counters] Fix reentrant timers for V8.Execute" 2021-08-09 18:41:50 +00:00
wasm-api-tests [wasm] Make --wasm-trap-handler a d8-only flag 2021-06-30 09:32:55 +00:00
wasm-js [wasm] Update wasm spec tests 2021-07-08 12:46:48 +00:00
wasm-spec-tests [riscv64][wasm] Implement wasm function 2021-07-13 00:08:25 +00:00
webkit Revert "Reland "[build] Add V8-specific dcheck_always_on"" 2021-07-27 11:14:57 +00:00
BUILD.gn
OWNERS