summaryrefslogtreecommitdiff
path: root/deps/v8/tools/testrunner/local/variants.py
diff options
context:
space:
mode:
authorMichaƫl Zasso <targos@protonmail.com>2023-03-30 12:11:08 +0200
committerNode.js GitHub Bot <github-bot@iojs.org>2023-03-31 14:15:23 +0000
commitf226350fcbebd4449fb0034fdaffa147e4de28ea (patch)
tree8896397ec8829c238012bfbe9781f4e2d94708bc /deps/v8/tools/testrunner/local/variants.py
parent10928cb0a4643a11c02af7bab93fc4b5abe2ce7d (diff)
downloadnode-new-f226350fcbebd4449fb0034fdaffa147e4de28ea.tar.gz
deps: update V8 to 11.3.244.4
PR-URL: https://github.com/nodejs/node/pull/47251 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Diffstat (limited to 'deps/v8/tools/testrunner/local/variants.py')
-rw-r--r--deps/v8/tools/testrunner/local/variants.py137
1 files changed, 106 insertions, 31 deletions
diff --git a/deps/v8/tools/testrunner/local/variants.py b/deps/v8/tools/testrunner/local/variants.py
index f44e445eca..e5344a4880 100644
--- a/deps/v8/tools/testrunner/local/variants.py
+++ b/deps/v8/tools/testrunner/local/variants.py
@@ -16,7 +16,11 @@ ALL_VARIANT_FLAGS = {
"jitless": [["--jitless"]],
"sparkplug": [["--sparkplug"]],
"maglev": [["--maglev"]],
- "stress_maglev": [["--maglev", "--stress-maglev"]],
+ "maglev_future": [["--maglev", "--maglev-future"]],
+ "stress_maglev": [[
+ "--maglev", "--stress-maglev",
+ "--optimize-on-next-call-optimizes-to-maglev"
+ ]],
"turboshaft": [["--turboshaft"]],
"concurrent_sparkplug": [["--concurrent-sparkplug", "--sparkplug"]],
"always_sparkplug": [["--always-sparkplug", "--sparkplug"]],
@@ -27,8 +31,14 @@ ALL_VARIANT_FLAGS = {
# https://chromium-review.googlesource.com/c/452620/ for more discussion.
# For WebAssembly, we test "Liftoff-only" in the nooptimization variant and
# "TurboFan-only" in the stress variant. The WebAssembly configuration is
- # independent of JS optimizations, so we can combine those configs.
- "nooptimization": [["--no-turbofan", "--liftoff", "--no-wasm-tier-up"]],
+ # independent of JS optimizations, so we can combine those configs. We
+ # disable lazy compilation to have one test variant that tests eager
+ # compilation. "Liftoff-only" and eager compilation is not a problem,
+ # because test functions do typically not get optimized to TurboFan anyways.
+ "nooptimization": [[
+ "--no-turbofan", "--liftoff", "--no-wasm-tier-up",
+ "--no-wasm-lazy-compilation"
+ ]],
"slow_path": [["--force-slow-path"]],
"stress": [[
"--no-liftoff", "--stress-lazy-source-positions",
@@ -47,27 +57,40 @@ ALL_VARIANT_FLAGS = {
"instruction_scheduling": [["--turbo-instruction-scheduling"]],
"stress_instruction_scheduling": [["--turbo-stress-instruction-scheduling"]
],
- "wasm_write_protect_code": [["--wasm-write-protect-code-memory"]],
# Google3 variants.
"google3_icu": [[]],
"google3_noicu": [[]],
}
+# Note these are specifically for the case when Turbofan is either fully
+# disabled (i.e. not part of the binary), or when all codegen is disallowed (in
+# jitless mode).
+kIncompatibleFlagsForNoTurbofan = [
+ "--turbofan", "--always-turbofan", "--liftoff", "--validate-asm",
+ "--maglev", "--stress-concurrent-inlining"
+]
+
# Flags that lead to a contradiction with the flags provided by the respective
# variant. This depends on the flags specified in ALL_VARIANT_FLAGS and on the
# implications defined in flag-definitions.h.
INCOMPATIBLE_FLAGS_PER_VARIANT = {
- "jitless": [
- "--turbofan", "--always-turbofan", "--liftoff", "--track-field-types",
- "--validate-asm", "--sparkplug", "--concurrent-sparkplug", "--maglev",
- "--always-sparkplug", "--regexp-tier-up", "--no-regexp-interpret-all"
+ "jitless":
+ kIncompatibleFlagsForNoTurbofan + [
+ "--track-field-types", "--sparkplug", "--concurrent-sparkplug",
+ "--always-sparkplug", "--regexp-tier-up",
+ "--no-regexp-interpret-all", "--interpreted-frames-native-stack"
+ ],
+ "nooptimization": [
+ "--turbofan", "--always-turbofan", "--stress-concurrent-inlining"
],
- "nooptimization": ["--always-turbofan"],
"slow_path": ["--no-force-slow-path"],
- "stress_concurrent_allocation": ["--single-threaded-gc", "--predictable"],
+ "stress_concurrent_allocation": [
+ "--single-threaded", "--single-threaded-gc", "--predictable"
+ ],
"stress_concurrent_inlining": [
"--single-threaded", "--predictable", "--lazy-feedback-allocation",
- "--assert-types", "--no-concurrent-recompilation"
+ "--assert-types", "--no-concurrent-recompilation", "--no-turbofan",
+ "--jitless"
],
# The fast API tests initialize an embedder object that never needs to be
# serialized to the snapshot, so we don't have a
@@ -81,15 +104,13 @@ INCOMPATIBLE_FLAGS_PER_VARIANT = {
"sparkplug": ["--jitless", "--no-sparkplug"],
"concurrent_sparkplug": ["--jitless"],
"maglev": ["--jitless", "--no-maglev"],
+ "maglev_future": ["--jitless", "--no-maglev", "--no-maglev-future"],
"stress_maglev": ["--jitless"],
"always_sparkplug": ["--jitless", "--no-sparkplug"],
"code_serializer": [
"--cache=after-execute", "--cache=full-code-cache", "--cache=none"
],
"experimental_regexp": ["--no-enable-experimental-regexp-engine"],
- # There is a negative implication: --perf-prof disables
- # --wasm-write-protect-code-memory.
- "wasm_write_protect_code": ["--perf-prof"],
"assert_types": [
"--concurrent-recompilation", "--stress_concurrent_inlining",
"--no-assert-types"
@@ -101,17 +122,65 @@ INCOMPATIBLE_FLAGS_PER_VARIANT = {
# in _get_statusfile_variables in base_runner.py.
# The conflicts might be directly contradictory flags or be caused by the
# implications defined in flag-definitions.h.
+# The keys of the following map support negation through '!', e.g. rule
+#
+# "!code_comments": [...]
+#
+# applies when the code_comments build variable is NOT set.
INCOMPATIBLE_FLAGS_PER_BUILD_VARIABLE = {
- "lite_mode": ["--no-lazy-feedback-allocation", "--max-semi-space-size=*",
- "--stress-concurrent-inlining"]
- + INCOMPATIBLE_FLAGS_PER_VARIANT["jitless"],
- "predictable": ["--parallel-compile-tasks-for-eager-toplevel",
- "--parallel-compile-tasks-for-lazy",
- "--concurrent-recompilation",
- "--stress-concurrent-allocation",
- "--stress-concurrent-inlining"],
- "dict_property_const_tracking": [
- "--stress-concurrent-inlining"],
+ "!code_comments": ["--code-comments"],
+ "!is_DEBUG_defined": [
+ "--check_handle_count",
+ "--code_stats",
+ "--dump_wasm_module",
+ "--enable_testing_opcode_in_wasm",
+ "--gc_verbose",
+ "--print_ast",
+ "--print_break_location",
+ "--print_global_handles",
+ "--print_handles",
+ "--print_scopes",
+ "--regexp_possessive_quantifier",
+ "--trace_backing_store",
+ "--trace_contexts",
+ "--trace_isolates",
+ "--trace_lazy",
+ "--trace_liftoff",
+ "--trace_module_status",
+ "--trace_normalization",
+ "--trace_turbo_escape",
+ "--trace_wasm_compiler",
+ "--trace_wasm_decoder",
+ "--trace_wasm_instances",
+ "--trace_wasm_interpreter",
+ "--trace_wasm_lazy_compilation",
+ "--trace_wasm_native_heap",
+ "--trace_wasm_serialization",
+ "--trace_wasm_stack_switching",
+ "--trace_wasm_streaming",
+ "--trap_on_abort",
+ ],
+ "!verify_heap": ["--verify-heap"],
+ "!debug_code": ["--debug-code"],
+ "!disassembler": [
+ "--print_all_code", "--print_code", "--print_opt_code",
+ "--print_code_verbose", "--print_builtin_code", "--print_regexp_code"
+ ],
+ "!slow_dchecks": ["--enable-slow-asserts"],
+ "!gdbjit": ["--gdbjit", "--gdbjit_full", "--gdbjit_dump"],
+ "!has_maglev": ["--maglev"],
+ "!has_turbofan":
+ kIncompatibleFlagsForNoTurbofan,
+ "jitless_build_mode":
+ INCOMPATIBLE_FLAGS_PER_VARIANT["jitless"],
+ "lite_mode": ["--max-semi-space-size=*"] +
+ INCOMPATIBLE_FLAGS_PER_VARIANT["jitless"],
+ "predictable": [
+ "--parallel-compile-tasks-for-eager-toplevel",
+ "--parallel-compile-tasks-for-lazy", "--concurrent-recompilation",
+ "--stress-concurrent-allocation", "--stress-concurrent-inlining"
+ ],
+ "dict_property_const_tracking": ["--stress-concurrent-inlining"],
}
# Flags that lead to a contradiction when a certain extra-flag is present.
@@ -120,15 +189,21 @@ INCOMPATIBLE_FLAGS_PER_BUILD_VARIABLE = {
# The conflicts might be directly contradictory flags or be caused by the
# implications defined in flag-definitions.h.
INCOMPATIBLE_FLAGS_PER_EXTRA_FLAG = {
- "--concurrent-recompilation": ["--predictable", "--assert-types"],
- "--parallel-compile-tasks-for-eager-toplevel": ["--predictable"],
- "--parallel-compile-tasks-for-lazy": ["--predictable"],
- "--gc-interval=*": ["--gc-interval=*"],
- "--optimize-for-size": ["--max-semi-space-size=*"],
- "--stress_concurrent_allocation":
+ "--concurrent-recompilation": [
+ "--predictable", "--assert-types", "--turboshaft-assert-types",
+ "--single-threaded"
+ ],
+ "--parallel-compile-tasks-for-eager-toplevel": ["--predictable"],
+ "--parallel-compile-tasks-for-lazy": ["--predictable"],
+ "--gc-interval=*": ["--gc-interval=*"],
+ "--optimize-for-size": ["--max-semi-space-size=*"],
+ "--stress_concurrent_allocation":
INCOMPATIBLE_FLAGS_PER_VARIANT["stress_concurrent_allocation"],
- "--stress-concurrent-inlining":
+ "--stress-concurrent-inlining":
INCOMPATIBLE_FLAGS_PER_VARIANT["stress_concurrent_inlining"],
+ "--turboshaft-assert-types": [
+ "--concurrent-recompilation", "--stress-concurrent-inlining"
+ ],
}
SLOW_VARIANTS = set([