v8/test/mjsunit/mjsunit.status
Jakob Gruber 3599cce1f5 [nci] Share smi feedback and enable related optimizations
This CL enables a first batch of feedback-based optimizations in NCI
code. Specifically, optimizations based on unary, binary, compare,
for-in-next, and for-in-prepare feedback are now enabled.

This has two main implications:

1. NCI code can now deopt. Deoptimized code is currently thrown away
permanently and cannot be reused. Now that shared/cached NCI code can
deopt, this leads to an interesting question of what should happen
with deoptimized NCI code. The answer in this CL is to remove the
cache entry (it may later be re-added).

2. Tiering up from NCI to TF still requires feedback; since NCI code,
starting with this CL, no longer collects full feedback, feedback must
be created in some other way. This is solved by sharing a
context-independent encoding of feedback across native contexts.

Feedback is shared through a new SerializedFeedback object type,
essentially a byte array of serialized feedback. Currently, only
smi-based feedback is shared, but map-based feedback will be added in
the future.

SerializedFeedback is kept in the NCI cache alongside NCI Code
objects.  It is created on NCI cache insertion, and deserialized upon
NCI cache hits.

Bug: v8:8888
Change-Id: Ic0d5fbea3aa4d3b0a165624dab9d0283b07dcee7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2531775
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Mythri Alle <mythria@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#71224}
2020-11-17 11:13:56 +00:00

1481 lines
56 KiB
Plaintext

# Copyright 2012 the V8 project authors. All rights reserved.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# * Neither the name of Google Inc. nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
[
[ALWAYS, {
# Modules which are only meant to be imported from by other tests, not to be
# tested standalone.
'modules-skip*': [SKIP],
'harmony/modules-skip*': [SKIP],
'regress/modules-skip*': [SKIP],
'wasm/exceptions-utils': [SKIP],
'wasm/wasm-module-builder': [SKIP],
# All tests in the bug directory are expected to fail.
'bugs/*': [FAIL],
##############################################################################
# Open bugs.
# https://crbug.com/v8/10929
'wasm/externref-liftoff' : [SKIP],
'wasm/externref-globals-liftoff' : [SKIP],
# BUG(v8:2989).
'regress/regress-2989': [FAIL, NO_VARIANTS, ['lite_mode == True', SKIP]],
# Issue 3784: setters-on-elements is flaky
'setters-on-elements': [PASS, FAIL],
# https://crbug.com/v8/7697
'array-literal-feedback': [PASS, FAIL],
# https://crbug.com/v8/7775
'allocation-site-info': [SKIP],
# BUG(v8:8169)
'external-backing-store-gc': [SKIP],
# Issue 9380: Memory leaks of shared WebAssembly.Memory objects
'wasm/shared-memory-worker-gc': [SKIP],
# BUG(v8:10197)
'regress/regress-748069': [SKIP],
# https://crbug.com/1043058
# Enable once serializing a running isolate is fully implemented.
'serialize-deserialize-now': [SKIP],
# BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [PASS, SLOW],
'wasm/shared-memory-worker-gc-stress': [PASS, SLOW],
# https://crbug.com/1129854
'tools/log': ['arch == arm or arch == arm64', SKIP],
##############################################################################
# Tests where variants make no sense.
'd8/enable-tracing': [PASS, NO_VARIANTS],
'd8/d8-os': [PASS, NO_VARIANTS],
'd8/d8-performance-now': [PASS, NO_VARIANTS],
'regexp-global': [PASS, NO_VARIANTS],
'regress/regress-4595': [PASS, NO_VARIANTS],
'regress/regress-crbug-491062': [PASS, NO_VARIANTS],
'third_party/regexp-pcre/regexp-pcre': [PASS, NO_VARIANTS],
'tools/compiler-trace-flags': [PASS, NO_VARIANTS],
'tools/dumpcpp': [PASS, NO_VARIANTS],
'tools/tickprocessor': [PASS, NO_VARIANTS],
# Issue 488: this test sometimes times out.
# TODO(arm): This seems to flush out a bug on arm with simulator.
'array-constructor': [PASS, SLOW, ['arch == arm and simulator_run', SKIP]],
##############################################################################
# Long-running tests.
# We really should find better solutions for these.
'es6/promise-all-overflow-1': [SKIP],
'harmony/promise-any-overflow-1': [SKIP],
'migrations': [SKIP],
'regress/regress-2073': [SKIP],
##############################################################################
# Tests verifying CHECK and ASSERT.
'verify-check-false': [FAIL, NO_VARIANTS],
'verify-assert-false': [NO_VARIANTS, ['mode == release and dcheck_always_on == False', PASS], ['mode == debug', FAIL]],
##############################################################################
# Tests with different versions for release and debug.
'compiler/alloc-number': [PASS, ['mode == debug', SKIP]],
'compiler/alloc-number-debug': [PASS, ['mode == release', SKIP]],
'regress/regress-634-debug': [PASS, ['mode == release', SKIP]],
# This test variant makes only sense on arm.
'math-floor-of-div-nosudiv': [PASS, SLOW, ['arch not in [arm, arm64]', SKIP]],
# OOM flakes in isolates tests because too many largish heaps are created.
'asm/asm-heap': [PASS, NO_VARIANTS, ['isolates', SKIP]],
# Slow tests.
'array-functions-prototype-misc': [PASS, SLOW],
'asm/embenchen/*': [PASS, SLOW, NO_VARIANTS],
'asm/poppler/*': [PASS, SLOW, NO_VARIANTS],
'asm/sqlite3/*': [PASS, SLOW, NO_VARIANTS],
'compiler/regress-9017': [PASS, SLOW],
'copy-on-write-assert': [PASS, SLOW],
'es6/promise-all-overflow-2': [PASS, SLOW, ['arch != x64', SKIP]],
'es6/typedarray-construct-offset-not-smi': [PASS, SLOW],
'harmony/promise-any-overflow-2': [PASS, SLOW, ['arch != x64', SKIP]],
'harmony/sharedarraybuffer-worker-gc-stress': [PASS, SLOW],
'harmony/futex': [PASS, SLOW],
'harmony/regexp-property-script-extensions': [PASS, SLOW],
'ignition/regress-672027': [PASS, SLOW],
'large-object-literal-slow-elements': [PASS, SLOW],
'math-floor-of-div': [PASS, SLOW],
'md5': [PASS, SLOW],
'readonly': [PASS, SLOW],
'regress/regress-1122': [PASS, SLOW],
'regress/regress-605470': [PASS, SLOW],
'regress/regress-655573': [PASS, SLOW],
'regress/regress-1200351': [PASS, SLOW],
'regress/regress-crbug-808192': [PASS, SLOW, NO_VARIANTS, ['arch not in (ia32, x64)', SKIP]],
'regress/regress-crbug-918301': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['(arch == arm or arch == arm64) and simulator_run', SKIP], ['tsan', SKIP]],
'regress/wasm/regress-810973': [PASS, SLOW],
'sealed-array-reduce': [PASS, SLOW],
'string-replace-gc': [PASS, SLOW],
'wasm/embenchen/*': [PASS, SLOW],
'wasm/futex': [PASS, SLOW],
'wasm/unreachable-validation': [PASS, SLOW],
'wasm/atomics-stress': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['tsan', SKIP]],
'wasm/atomics64-stress': [PASS, SLOW, NO_VARIANTS, ['mode != release or dcheck_always_on', SKIP], ['tsan', SKIP]],
'wasm/compare-exchange-stress': [PASS, SLOW, NO_VARIANTS],
'wasm/compare-exchange64-stress': [PASS, SLOW, NO_VARIANTS],
# Very slow on ARM and MIPS, contains no architecture dependent code.
'unicode-case-overoptimization': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips64, mips)', SKIP]],
'regress/regress-3976': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips64, mips)', SKIP]],
'regress/regress-crbug-482998': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips)', SKIP]],
'regress/regress-740784': [PASS, NO_VARIANTS, ['arch in (arm, arm64, mipsel, mips64el, mips)', SKIP]],
# TODO(bmeurer): Flaky timeouts (sometimes <1s, sometimes >3m).
'unicodelctest': [PASS, NO_VARIANTS],
'unicodelctest-no-optimization': [PASS, NO_VARIANTS],
# Test is only enabled on ASAN. Takes too long on many other bots.
'regress/regress-crbug-9161': [PASS, SLOW, ['asan == False', SKIP]],
# OOM with too many isolates/memory objects (https://crbug.com/1010272)
# Predictable tests fail due to race between postMessage and GrowMemory
'regress/wasm/regress-1010272': [PASS, NO_VARIANTS, ['system == android', SKIP], ['predictable', SKIP]],
# Only makes sense in the no_i18n variant.
'es6/unicode-regexp-ignore-case-noi18n':
[['no_i18n == True', PASS], ['no_i18n == False', FAIL]],
# Needs to be adapted after changes to Function constructor. chromium:1065094
'cross-realm-filtering': [SKIP],
}], # ALWAYS
##############################################################################
['mode == debug', {
# Skip slow tests in debug mode.
'array-functions-prototype-misc': [SKIP],
'compiler/regress-808472': [SKIP],
'es6/promise-all-overflow-2': [SKIP],
'generated-transition-stub': [SKIP],
'regress/regress-524': [SKIP],
'regress/regress-4595': [SKIP],
'regress/regress-430201': [SKIP],
'regress/regress-430201b': [SKIP],
'regress/regress-716044': [SKIP],
'regress/regress-crbug-217858': [SKIP],
'regress/regress-crbug-808192': [SKIP],
'regress/regress-crbug-941743': [SKIP],
'regress/regress-create-exception': [SKIP],
# These tests run out of stack space in debug mode.
'big-array-literal': [SKIP],
'big-object-literal': [SKIP],
# Too slow in debug mode BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
'wasm/shared-memory-worker-gc-stress': [SKIP],
# For these tests, making them as slow is enough:
'numops-fuzz-part*': [SLOW],
# worker creation/shutdown is very slow in debug mode
'd8/d8-worker-shutdown*': [SLOW],
# Allocates a huge string and then flattens it.
'regress/regress-752764': [SLOW],
}], # mode == debug
['novfp3', {
'asm/embenchen/box2d': [SKIP],
'asm/embenchen/zlib': [SKIP],
'asm/embenchen/memops': [SKIP],
'asm/embenchen/lua_binarytrees': [SKIP],
}], # novfp3
##############################################################################
# TODO(ahaas): Port multiple return values to MIPS, S390 and PPC
['arch in (mips, mips64, mipsel, mips64el, s390, s390x, ppc, ppc64)', {
'wasm/multi-value': [SKIP],
}],
##############################################################################
['simulator_run', {
# Skip/annotate tests that are too slow on simulators.
'random-bit-correlations': [SLOW],
'regress/regress-crbug-941743': [SKIP],
'regress/regress-crbug-1041232': [SKIP],
'regress/wasm/regress-1010272': [SKIP],
'wasm/atomics-stress': [SKIP],
'wasm/atomics64-stress': [SKIP],
}], # simulator_run
##############################################################################
['gc_stress', {
# Skip tests not suitable for GC stress.
'allocation-site-info': [SKIP],
'array-constructor-feedback': [SKIP],
'array-feedback': [SKIP],
'array-literal-feedback': [SKIP],
'd8/d8-performance-now': [SKIP],
'elements-kind': [SKIP],
'elements-transition-hoisting': [SKIP],
'fast-prototype': [SKIP],
'field-type-tracking': [SKIP],
'getters-on-elements': [SKIP],
'es6/block-let-crankshaft': [SKIP],
'opt-elements-kind': [SKIP],
'osr-elements-kind': [SKIP],
'compiler/number-divide': [SKIP],
'regress/regress-crbug-137689': [SKIP],
'regress/regress-trap-allocation-memento': [SKIP],
'regress/regress-2249': [SKIP],
'regress/regress-3709': [SKIP],
'regress/regress-4121': [SKIP],
'regress/regress-6989': [SKIP],
'compare-known-objects-slow': [SKIP],
'compiler/array-multiple-receiver-maps': [SKIP],
# Tests taking too long
'regress/regress-1122': [SKIP],
'regress/regress-331444': [SKIP],
'regress/regress-353551': [SKIP],
'regress/regress-1138075': [SKIP],
'regress/regress-1138611': [SKIP],
'regress/regress-crbug-119926': [SKIP],
'regress/short-circuit': [SKIP],
'stack-traces-overflow': [SKIP],
'unicode-test': [SKIP],
'whitespaces': [SKIP],
# Unsuitable for GC stress because coverage information is lost on GC.
'code-coverage-ad-hoc': [SKIP],
'code-coverage-precise': [SKIP],
# Takes too long with TF.
'array-sort': [PASS, NO_VARIANTS],
'regress/regress-91008': [PASS, NO_VARIANTS],
'regress/regress-transcendental': [PASS, ['arch == arm64', NO_VARIANTS]],
'compiler/osr-regress-max-locals': [PASS, NO_VARIANTS],
'math-floor-of-div': [PASS, SLOW, NO_VARIANTS],
'unicodelctest': [PASS, NO_VARIANTS],
'unicodelctest-no-optimization': [PASS, NO_VARIANTS],
# TODO(jkummerow): Doesn't work correctly in GC stress.
'regress/regress-crbug-500497': [SKIP],
# Too slow for gc stress.
'asm/embenchen/box2d': [SKIP],
# Too slow for gc stress, BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
'wasm/shared-memory-worker-gc-stress': [SKIP],
# BUG(v8:4237)
'regress/regress-3976': [SKIP],
# Slow tests.
'array-constructor': [PASS, SLOW],
'json': [PASS, SLOW],
# BUG(v8:4779): Crashes flakily with stress mode on arm64.
'array-splice': [PASS, SLOW, ['arch == arm64', NO_VARIANTS]],
# BUG(v8:7880): Slow tests.
'regress/regress-707066': [SKIP],
'regress/regress-446389': [SKIP],
'regress/regress-458987': [SKIP],
'es6/regress/regress-crbug-465671': [SKIP],
'regress/regress-inline-getter-near-stack-limit': [SKIP],
'es6/regress/regress-crbug-465671-null': [SKIP],
'regress/regress-148378': [SKIP],
'regress/regress-crbug-762472': [SKIP],
# BUG(v8:10035)
'compiler/deopt-array-builtins': [SKIP],
}], # 'gc_stress'
##############################################################################
['lite_mode or variant == jitless', {
# Skip tests not suitable for lite_mode.
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
'regress/regress-5888': [SKIP],
'regress/regress-5911': [SKIP],
'regress/regress-813440': [SKIP],
'regress/regress-crbug-746835': [SKIP],
'regress/regress-crbug-772056': [SKIP],
'regress/regress-crbug-816961': [SKIP],
'regress/regress-crbug-969498': [SKIP],
'regress/regress-crbug-1047368': [SKIP],
'regress/wasm/*': [SKIP],
'regress/regress-8947': [SKIP],
'regress/regress-9209': [SKIP],
'regress/regress-1034394': [SKIP],
'regress/regress-v8-9106': [SKIP],
'wasm/*': [SKIP],
# Other tests that use asm / wasm / optimized code.
'asm/asm-heap': [SKIP],
'asm/asm-validation': [SKIP],
'asm/call-stdlib': [SKIP],
'asm/call-annotation': [SKIP],
'asm/global-imports': [SKIP],
'asm/regress-1027595': [SKIP],
'asm/regress-1069173': [SKIP],
'asm/regress-913822': [SKIP],
'asm/regress-937650': [SKIP],
'asm/regress-9531': [SKIP],
'asm/return-types': [SKIP],
'regress/regress-599719': [SKIP],
'regress/regress-6196': [SKIP],
'regress/regress-6700': [SKIP],
'regress/regress-6838-2': [SKIP],
'regress/regress-6838-3': [SKIP],
'regress/regress-6838-4': [SKIP],
'regress/regress-9022': [SKIP],
'regress/regress-9832': [SKIP],
'regress/regress-crbug-934138': [SKIP],
'regress/regress-crbug-976934': [SKIP],
# Timeouts in lite / jitless mode.
'asm/embenchen/*': [SKIP],
# Tests that generate code at runtime.
'code-comments': [SKIP],
'regress/regress-617526': [SKIP],
'regress/regress-7893': [SKIP],
'regress/regress-8377': [SKIP],
'regress/regress-863810': [SKIP],
'regress/regress-crbug-721835': [SKIP],
'regress/regress-crbug-759327': [SKIP],
'regress/regress-crbug-898974': [SKIP],
'regexp-tier-up': [SKIP],
'regexp-tier-up-multiple': [SKIP],
'regress/regress-996234': [SKIP],
# These tests check that we can trace the compiler.
'tools/compiler-trace-flags': [SKIP],
'tools/compiler-trace-flags-wasm': [SKIP],
# Too slow on arm64 simulator and debug: https://crbug.com/v8/7783
'md5': [PASS, ['arch == arm64 and mode == debug and simulator_run', SKIP]],
# Slow with pointer compression.
'regress/regress-crbug-319860': [PASS, ['pointer_compression', SLOW]],
# Flag --interpreted-frames-native-stack incompatible with jitless
'regress/regress-10138': [SKIP],
'regress/regress-1078913': [SKIP],
}], # 'lite_mode or variant == jitless'
##############################################################################
['no_i18n', {
# Case-insensitive unicode regexp relies on case mapping provided by ICU.
'es6/unicode-regexp-ignore-case': [FAIL],
'regress/regress-5036': [FAIL],
'es7/regexp-ui-word': [FAIL],
'regexp-modifiers-i18n': [FAIL],
'regexp-modifiers-autogenerated-i18n': [FAIL],
# Desugaring regexp property class relies on ICU. Anything goes as long as we
# don't crash.
'harmony/regexp-property-*': [PASS,FAIL],
'regress/regress-793588': [PASS,FAIL],
# noi18n build cannot parse characters in supplementary plane.
'harmony/regexp-named-captures': [FAIL],
# noi18n cannot turn on ICU backend for Date. Anything goes as long as we
# don't crash.
'icu-date-to-string': [PASS,FAIL],
'icu-date-lord-howe': [PASS,FAIL],
'tzoffset-transition-apia': [PASS,FAIL],
'tzoffset-transition-lord-howe': [PASS,FAIL],
'tzoffset-transition-moscow': [PASS,FAIL],
'tzoffset-transition-new-york': [PASS,FAIL],
'tzoffset-seoul': [PASS,FAIL],
# noi18n is required for Intl
'regress/regress-crbug-1052647': [PASS,FAIL],
}], # 'no_i18n'
##############################################################################
['is_full_debug', {
# Tests too slow in non-optimized debug mode.
'regress/regress-2790': [SKIP],
'regress/regress-331444': [SKIP],
'regress/regress-740784': [SKIP],
'regress/regress-992389': [SKIP],
}], # 'is_full_debug'
##############################################################################
['byteorder == big', {
# Emscripten requires little-endian, skip all tests on big endian platforms.
'asm/embenchen/*': [SKIP],
'asm/poppler/*': [SKIP],
'asm/sqlite3/*': [SKIP],
# TODO(mips-team): Fix Wasm for big-endian.
'wasm/*': [SKIP],
}], # 'byteorder == big'
##############################################################################
# 32-bit platforms
['arch in (ia32, arm, mips, mipsel)', {
# Needs >2GB of available contiguous memory.
'wasm/grow-huge-memory': [SKIP],
'wasm/huge-memory': [SKIP],
'wasm/huge-typedarray': [SKIP],
}], # 'arch in (ia32, arm, mips, mipsel)'
##############################################################################
['arch == arm64', {
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Pass but take too long to run. Skip.
# Some similar tests (with fewer iterations) may be included in arm64-js
# tests.
'asm/embenchen/box2d': [SKIP],
'asm/embenchen/lua_binarytrees': [SKIP],
'compiler/regress-arguments': [SKIP],
'compiler/regress-gvn': [SKIP],
'compiler/regress-4': [SKIP],
'compiler/regress-or': [SKIP],
'compiler/regress-rep-change': [SKIP],
'regress/regress-1117': [SKIP],
'regress/regress-1849': [SKIP],
'regress/regress-3247124': [SKIP],
'regress/regress-91008': [SKIP],
'regress/regress-91010': [SKIP],
'regress/regress-91013': [SKIP],
'regress/regress-99167': [SKIP],
# BUG(v8:3457).
'deserialize-reference': [PASS, FAIL],
# BUG(v8:4016)
'regress/regress-crbug-467047': [SKIP],
# OOMing tests
'regress/regress-500980': [SKIP],
# BUG(v8:9337).
'compiler/regress-9017': [SKIP],
# Slow tests.
'array-indexing': [PASS, SLOW],
'array-reduce': [PASS, SLOW],
'array-sort': [PASS, SLOW],
'array-splice': [PASS, SLOW],
'compiler/alloc-number': [PASS, SLOW],
'compiler/osr-with-args': [PASS, SLOW],
'frozen-array-reduce': [PASS, SLOW],
'generated-transition-stub': [PASS, SLOW],
'json2': [PASS, SLOW],
'math-floor-of-div-nosudiv': [PASS, SLOW],
'messages': [PASS, SLOW],
'regress/regress-2790': [PASS, SLOW],
'regress/regress-331444': [PASS, SLOW],
'regress/regress-490': [PASS, SLOW],
'regress/regress-crbug-217858': [PASS, SLOW],
'regress/regress-create-exception': [PASS, SLOW],
'regress/regress-json-stringify-gc': [PASS, SLOW],
'string-indexof-2': [PASS, SLOW],
'unicodelctest-no-optimization': [PASS, SLOW],
'unicodelctest': [PASS, SLOW],
'unicode-test': [PASS, SLOW],
'wasm/atomics': [PASS, SLOW],
'whitespaces': [PASS, SLOW],
# BUG(v8:10032).
'array-store-and-grow': [PASS, SLOW],
# BUG(v8:7247).
'regress/regress-779407': [PASS, SLOW, NO_VARIANTS],
}], # 'arch == arm64'
##############################################################################
['arch == arm64 and simulator_run', {
'compiler/osr-big': [PASS, SLOW],
'regress/regress-454725': [PASS, SLOW],
'json': [PASS, SLOW],
'try': [PASS, SLOW],
'non-extensible-array-reduce': [PASS, SLOW],
}], # 'arch == arm64 and simulator_run'
##############################################################################
['arch == arm64 and mode == debug and simulator_run', {
# Pass but take too long with the simulator in debug mode.
'array-sort': [PASS, SLOW],
'regexp-global': [SKIP],
'math-floor-of-div-nosudiv': [PASS, SLOW],
'unicodelctest': [PASS, SLOW],
'unicodelctest-no-optimization': [PASS, SLOW],
# Issue 3219:
'getters-on-elements': [PASS, ['gc_stress == True', FAIL]],
}], # 'arch == arm64 and mode == debug and simulator_run'
##############################################################################
['asan == True', {
# Skip tests not suitable for ASAN.
'big-array-literal': [SKIP],
'regress/regress-crbug-178790': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=4639
# The failed allocation causes an asan/msan/tsan error
'es6/typedarray-construct-offset-not-smi': [SKIP],
# Exception thrown during bootstrapping on ASAN builds, see issue 4236.
'regress/regress-1132': [SKIP],
# Flaky on ASAN builds: https://bugs.chromium.org/p/v8/issues/detail?id=6305
'regress/regress-430201': [SKIP],
'regress/regress-430201b': [SKIP],
# Stack overflow on windows.
'es8/regress/regress-624300': [PASS, ['system == windows', SKIP]],
# https://bugs.chromium.org/p/v8/issues/detail?id=7102
# Flaky due to huge string allocation.
'regress/regress-748069': [SKIP],
}], # 'asan == True'
##############################################################################
['msan == True', {
# Skip tests not suitable for MSAN.
'big-array-literal': [SKIP],
# ICU upstream issues.
'date': [SKIP],
'deep-recursion': [SKIP],
'regress/regress-builtinbust-7': [SKIP],
'string-localecompare': [SKIP],
# Too slow.
'asm/embenchen/zlib': [SKIP],
'harmony/regexp-property-lu-ui': [SKIP],
'regress/regress-779407': [SKIP],
'wasm/embenchen/box2d': [SKIP],
'wasm/embenchen/lua_binarytrees': [SKIP],
'wasm/embenchen/zlib': [SKIP],
# https://bugs.chromium.org/p/v8/issues/detail?id=7102
# Flaky due to huge string allocation.
'regress/regress-748069': [SKIP],
}], # 'msan == True'
##############################################################################
['tsan == True', {
# https://bugs.chromium.org/p/v8/issues/detail?id=7102
# Flaky due to huge string allocation.
'regress/regress-748069': [SKIP],
# BUG(v8:7042). Uses a lot of memory.
'regress/regress-678917': [SKIP],
# BUG(v8:8103). Uses a lot of memory.
'regress/regress-852258': [SKIP],
# BUG(v8:6924). The test uses a lot of memory.
'regress/wasm/regress-694433': [SKIP],
'es6/typedarray': [PASS, NO_VARIANTS],
'regress/regress-752764': [PASS, SLOW, NO_VARIANTS],
# BUG(v8:9242). Uses a lot of memory.
'regress/regress-599414-array-concat-fast-path': [PASS, SLOW],
# BUG(v8:9026). Flaky timeouts.
'es6/large-classes-properties': [SKIP],
# Slow tests.
'compiler/regress-1125145': [SKIP],
'es6/block-conflicts-sloppy': [PASS, SLOW],
'math-floor-part1': [PASS, SLOW],
'regress/regress-430201': [SKIP],
'regress/regress-500980': [PASS, SLOW],
# BUG(v8:9506): times out.
'wasm/shared-memory-worker-explicit-gc-stress': [SKIP],
}], # 'tsan == True'
##############################################################################
['arch == arm', {
# Slow tests which times out in debug mode.
'try': [PASS, ['mode == debug', SKIP]],
'array-constructor': [PASS, ['mode == debug', SKIP]],
'regress/regress-1122': [PASS, SLOW, ['mode == debug', SKIP]],
# Flaky test that can hit compilation-time stack overflow in debug mode.
'unicode-test': [PASS, ['mode == debug', FAIL]],
# Slow in release mode on ARM.
'compiler/regress-stacktrace-methods': [PASS, SLOW],
'array-splice': [PASS, SLOW],
# Long running tests. Skipping because having them timeout takes too long on
# the buildbot.
'compiler/alloc-number': [SKIP],
'regress/regress-490': [SKIP],
'regress/regress-create-exception': [SKIP],
'regress/regress-3247124': [SKIP],
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Currently always deopt on minus zero
'math-floor-of-div-minus-zero': [SKIP],
# BUG(v8:9337).
'compiler/regress-9017': [SKIP],
# Slow tests.
'array-sort': [PASS, SLOW],
'compiler/osr-with-args': [PASS, SLOW],
'regress/regress-2790': [PASS, SLOW],
'regress/regress-91008': [PASS, SLOW],
'regress/regress-json-stringify-gc': [PASS, SLOW],
'string-indexof-2': [PASS, SLOW],
'wasm/atomics': [PASS, SLOW],
}], # 'arch == arm
##############################################################################
['arch in (mipsel, mips, mips64el, mips64) and not simulator_run', {
# These tests fail occasionally on the buildbots because they consume
# a large amount of memory if executed in parallel. Therefore we
# run only a single instance of these tests
'regress/regress-crbug-514081': [PASS, NO_VARIANTS],
'regress/regress-599414-array-concat-fast-path': [PASS, NO_VARIANTS],
'array-functions-prototype-misc': [PASS, NO_VARIANTS],
}], # 'arch in (mipsel, mips, mips64el, mips64)'
##############################################################################
['arch in (mipsel, mips, mips64el, mips64, ppc, ppc64)', {
# These tests fail because qNaN and sNaN values are encoded differently on
# MIPS and ARM/x86 architectures
'wasm/float-constant-folding': [SKIP],
}],
##############################################################################
['arch == mipsel or arch == mips', {
# Slow tests which times out in debug mode.
'try': [PASS, ['mode == debug', SKIP]],
'array-constructor': [PASS, ['mode == debug', SKIP]],
# Slow in release mode on MIPS.
'compiler/regress-stacktrace-methods': [PASS, SLOW],
'array-splice': [PASS, SLOW],
# Long running test.
'string-indexof-2': [PASS, SLOW],
# Long running tests. Skipping because having them timeout takes too long on
# the buildbot.
'compiler/alloc-number': [SKIP],
'regress/regress-490': [SKIP],
'regress/regress-create-exception': [SKIP],
'regress/regress-3247124': [SKIP],
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Currently always deopt on minus zero
'math-floor-of-div-minus-zero': [SKIP],
# Requires too much memory on MIPS.
'regress/regress-752764': [SKIP],
'regress/regress-779407': [SKIP],
'harmony/bigint/regressions': [SKIP],
# Pre-r6 MIPS32 doesn't have instructions needed to properly handle 64-bit
# atomic instructions.
'wasm/atomics64-stress': [PASS, ['mips_arch_variant != r6', SKIP]],
}], # 'arch == mipsel or arch == mips'
##############################################################################
['arch == mips64el or arch == mips64', {
# Slow tests which times out in debug mode.
'try': [PASS, ['mode == debug', SKIP]],
'array-constructor': [PASS, ['mode == debug', SKIP]],
# Slow in release mode on MIPS.
'compiler/regress-stacktrace-methods': [PASS, SLOW],
'array-splice': [PASS, SLOW],
# Long running test.
'string-indexof-2': [PASS, SLOW],
# BUG(3251035): Timeouts in long looping crankshaft optimization
# tests. Skipping because having them timeout takes too long on the
# buildbot.
'compiler/alloc-number': [PASS, SLOW],
'compiler/array-length': [PASS, SLOW],
'compiler/assignment-deopt': [PASS, SLOW],
'compiler/deopt-args': [PASS, SLOW],
'compiler/inline-compare': [PASS, SLOW],
'compiler/inline-global-access': [PASS, SLOW],
'compiler/optimized-function-calls': [PASS, SLOW],
'compiler/pic': [PASS, SLOW],
'compiler/property-calls': [PASS, SLOW],
'compiler/recursive-deopt': [PASS, SLOW],
'compiler/regress-4': [PASS, SLOW],
'compiler/regress-funcaller': [PASS, SLOW],
'compiler/regress-rep-change': [PASS, SLOW],
'compiler/regress-arguments': [PASS, SLOW],
'compiler/regress-funarguments': [PASS, SLOW],
'compiler/regress-3249650': [PASS, SLOW],
'compiler/simple-deopt': [PASS, SLOW],
'regress/regress-490': [PASS, SLOW],
'regress/regress-create-exception': [PASS, SLOW],
'regress/regress-3218915': [PASS, SLOW],
'regress/regress-3247124': [PASS, SLOW],
# Requires bigger stack size in the Genesis and if stack size is increased,
# the test requires too much time to run. However, the problem test covers
# should be platform-independent.
'regress/regress-1132': [SKIP],
# Currently always deopt on minus zero
'math-floor-of-div-minus-zero': [SKIP],
# Requires too much memory on MIPS.
'regress/regress-752764': [SKIP],
'regress/regress-779407': [SKIP],
}], # 'arch == mips64el or arch == mips64'
##############################################################################
['system == windows', {
# Too slow with turbo fan.
'math-floor-of-div': [PASS, ['mode == debug', SKIP]],
'math-floor-of-div-nosudiv': [PASS, ['mode == debug', SKIP]],
'unicodelctest': [PASS, ['mode == debug', SKIP]],
# Setting the timezone and locale with environment variables unavailable
'icu-date-to-string': [SKIP],
'icu-date-lord-howe': [SKIP],
'regress/regress-6288': [SKIP],
'tzoffset-transition-apia': [SKIP],
'tzoffset-transition-lord-howe': [SKIP],
'tzoffset-transition-moscow': [SKIP],
'tzoffset-transition-new-york': [SKIP],
'tzoffset-transition-new-york-noi18n': [SKIP],
'tzoffset-seoul': [SKIP],
'tzoffset-seoul-noi18n': [SKIP],
}], # 'system == windows'
##############################################################################
['system == android', {
# Tests consistently failing on Android.
# Setting the timezone and locale with environment variables unavailable
'icu-date-to-string': [SKIP],
'icu-date-lord-howe': [SKIP],
'regress/regress-6288': [SKIP],
'tzoffset-transition-apia': [SKIP],
'tzoffset-transition-lord-howe': [SKIP],
'tzoffset-transition-moscow': [SKIP],
'tzoffset-transition-new-york': [SKIP],
'tzoffset-transition-new-york-noi18n': [SKIP],
'tzoffset-seoul': [SKIP],
'tzoffset-seoul-noi18n': [SKIP],
# OOM:
'regress/regress-752764': [FAIL],
# Flaky OOM:
'regress/regress-748069': [SKIP],
'regress/regress-779407': [SKIP],
'regress/regress-852258': [SKIP],
}], # 'system == android'
##############################################################################
['isolates', {
# Slow tests.
'es6/typedarray-of': [PASS, SLOW],
'regress/regress-crbug-854299': [PASS, SLOW],
# Currently d8-os generates a temporary directory name using Math.random(), so
# we cannot run several variants of d8-os simultaneously, since all of them
# get the same random seed and would generate the same directory name.
'd8/d8-os': [SKIP],
# Runs flakily OOM because multiple isolates are involved which create many
# wasm memories each. Before running OOM on a wasm memory allocation we
# trigger a GC, but only in the isolate allocating the new memory.
'wasm/module-memory': [SKIP],
'wasm/shared-memory-gc-stress': [SKIP],
# The {FreezeWasmLazyCompilation} runtime function sets a flag in the native
# module, which causes a data-race if the native module is shared between
# isolates.
'wasm/lazy-compilation': [SKIP],
# Tier down/up Wasm NativeModule in debugging is non-deterministic with
# multiple isolates (https://crbug.com/v8/10099).
'wasm/tier-down-to-liftoff': [SKIP],
# Tier down/up Wasm functions is non-deterministic with
# multiple isolates, as dynamic tiering relies on a array shared
# in the module, that can be modified by all instances.
'wasm/wasm-dynamic-tiering': [SKIP],
# waitAsync tests modify the global state (across Isolates)
'harmony/atomics-waitasync': [SKIP],
'harmony/atomics-waitasync-1thread-2timeout': [SKIP],
'harmony/atomics-waitasync-1thread-promise-out-of-scope': [SKIP],
'harmony/atomics-waitasync-1thread-timeout': [SKIP],
'harmony/atomics-waitasync-1thread-wake-up-fifo': [SKIP],
'harmony/atomics-waitasync-1thread-wake-up-simple': [SKIP],
'harmony/atomics-waitasync-worker-shutdown-before-wait-finished-timeout': [SKIP],
'harmony/atomics-waitasync-worker-shutdown-before-wait-finished-no-timeout': [SKIP],
}], # 'isolates'
##############################################################################
['deopt_fuzzer', {
# Skip tests that are not suitable for deoptimization fuzzing.
'never-optimize': [SKIP],
'readonly': [SKIP],
'array-feedback': [SKIP],
'array-reduce': [SKIP],
'deopt-recursive-eager-once': [SKIP],
'deopt-recursive-lazy-once': [SKIP],
'deopt-recursive-soft-once': [SKIP],
'code-coverage-block-opt': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
# Bounds check triggers forced deopt for array constructors.
'array-constructor-feedback': [SKIP],
# Deopting uses just enough memory to make this one OOM.
'regress/regress-3976': [SKIP],
# Forced optimisation path tests.
'shared-function-tier-up-turbo': [SKIP],
# Too slow tests.
'regress/regress-740784': [SKIP],
# https://crbug.com/v8/9984
'compiler/opt-higher-order-functions': [SKIP],
}], # 'deopt_fuzzer'
##############################################################################
['gc_fuzzer', {
'regress/regress-336820': [SKIP],
'regress/regress-748069': [SKIP],
'regress/regress-778668': [SKIP],
'ignition/regress-672027': [PASS, ['tsan', SKIP]],
'string-replace-gc': [PASS, SLOW, ['mode == debug', SKIP]],
# Unsuitable for GC fuzzing because coverage information is lost on GC.
'code-coverage-ad-hoc': [SKIP],
'code-coverage-precise': [SKIP],
# Flaky under GC stress (sometimes precludes the tested optimization)
'compiler/load-elimination-const-field': [SKIP],
# Passes incompatible arguments.
'd8/d8-arguments': [SKIP],
# Fails allocation on tsan.
'regress/regress-779407': [PASS, ['tsan', SKIP]],
# Tests that fail some assertions due to checking internal state sensitive
# to GC.
'compiler/native-context-specialization-hole-check': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
'opt-elements-kind': [SKIP],
'regress/regress-trap-allocation-memento': [SKIP],
'regress/regress-v8-9267-*': [SKIP],
'shared-function-tier-up-turbo': [SKIP],
}], # 'gc_fuzzer'
##############################################################################
['endurance_fuzzer', {
# BUG(v8:7400).
'wasm/lazy-compilation': [SKIP],
# BUG(v8:7429).
'regress/regress-599414-array-concat-fast-path': [SKIP],
# Often crashes due to memory consumption.
'regress/regress-655573': [SKIP],
# TSAN allocation failures.
'deep-recursion': [PASS, ['tsan', SKIP]],
'regress/regress-430201b': [PASS, ['tsan', SKIP]],
'regress/regress-crbug-493779': [PASS, ['tsan', SKIP]],
'regress/wasm/regress-763439': [PASS, ['tsan', SKIP]],
}], # 'endurance_fuzzer'
##############################################################################
['predictable == True', {
# Skip tests that are known to be non-deterministic.
'd8/d8-worker-sharedarraybuffer': [SKIP],
'd8/d8-os': [SKIP],
'd8/d8-worker-shutdown': [SKIP],
'd8/d8-worker-shutdown-gc': [SKIP],
'harmony/futex': [SKIP],
# BUG(v8:7166).
'd8/enable-tracing': [SKIP],
# Rely on (blocking) concurrent compilation.
'compiler/concurrent-invalidate-transition-map': [SKIP],
'compiler/concurrent-proto-change': [SKIP],
'compiler/manual-concurrent-recompile': [SKIP],
'compiler/regress-905555-2': [SKIP],
'compiler/regress-905555': [SKIP],
'compiler/regress-9945-1': [SKIP],
'concurrent-initial-prototype-change': [SKIP],
'regress/regress-356053': [SKIP],
'regress/regress-embedded-cons-string': [SKIP],
# Intentionally non-deterministic using shared arraybuffers.
'wasm/atomics-stress': [SKIP],
'wasm/atomics64-stress': [SKIP],
'wasm/futex': [SKIP],
'regress/wasm/regress-1067621': [SKIP],
# BUG(v8:9975).
'es6/typedarray-copywithin': [SKIP],
}], # 'predictable == True'
##############################################################################
['simulator_run and (arch in [ppc64, s390x])', {
# take too long with the simulator.
'regress/regress-1132': [SKIP],
'regress/regress-740784': [SKIP],
'regress/regress-crbug-482998': [PASS, SLOW],
'regress/regress-91008': [PASS, SLOW],
'regress/regress-779407': [PASS, SLOW],
'harmony/regexp-property-lu-ui': [PASS, SLOW],
'whitespaces': [PASS, SLOW],
'generated-transition-stub': [PASS, SLOW],
}], # 'simulator_run and (arch in [ppc64, s390x])'
##############################################################################
['arch == ppc64', {
# stack overflow
'big-array-literal': [SKIP],
'regress/regress-353551': [SKIP],
}], # 'arch == ppc64'
##############################################################################
['system == aix', {
# stack overflow
'regress/regress-crbug-178790': [PASS, ['mode == debug', SKIP]],
}], # 'system == aix'
##############################################################################
['arch == s390x', {
# stack overflow
'regress/regress-crbug-178790': [PASS, ['mode == debug', SKIP]],
}], # 'arch == s390x'
##############################################################################
['variant == stress', {
# Slow tests.
'array-natives-elements': [SKIP],
'ignition/regress-599001-verifyheap': [SKIP],
'unicode-test': [SKIP],
# The RegExp code cache means running this test multiple times is invalid.
'regexp-tier-up': [SKIP],
'regexp-tier-up-multiple': [SKIP],
# Flaky crash on Odroid devices: https://crbug.com/v8/7678
'regress/regress-336820': [PASS, ['arch == arm and not simulator_run', SKIP]],
# Goes OOM on ODROID devices: https://crbug.com/v8/9026
# Too slow on PPC: https://crbug.com/v8/9246
'es6/large-classes-properties': [PASS, SLOW, ['(arch == arm and not simulator_run) or arch in [ppc, ppc64]', SKIP]],
'regress/regress-1122': [PASS, ['tsan', SKIP]],
# Too slow with gc_stress on arm64.
'messages': [PASS, ['gc_stress and arch == arm64', SKIP]],
# Slow on arm64 simulator: https://crbug.com/v8/7783
'string-replace-gc': [PASS, ['arch == arm64 and simulator_run', SKIP]],
# Too memory hungry.
'regress/regress-779407': [PASS, ['tsan', SKIP]],
'regress/regress-599414-array-concat-fast-path': [PASS, ['tsan', SKIP]],
# Too memory hungry on Odroid devices.
'regress/regress-678917': [PASS, ['arch == arm and not simulator_run', SKIP]],
}], # variant == stress
##############################################################################
['variant == stress and (arch == arm or arch == arm64) and simulator_run', {
# Slow tests: https://crbug.com/v8/7783
'es6/large-classes-properties': [SKIP],
'generated-transition-stub': [SKIP],
'regress/regress-336820': [SKIP],
}], # variant == stress and (arch == arm or arch == arm64) and simulator_run
##############################################################################
['variant in (nooptimization, jitless) and arch in (arm, arm64) and simulator_run', {
# Slow tests: https://crbug.com/v8/7783
'regress/regress-crbug-319860': [SKIP],
}], # variant == nooptimization and (arch == arm or arch == arm64) and simulator_run
##############################################################################
['variant == nooptimization', {
# Tests that depend on optimization (beyond doing assertOptimized).
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
# Wasm serialization relies on TurboFan to be available, hence does not work
# in the 'nooptimization' variant.
'regress/wasm/regress-7785': [SKIP],
}], # variant == nooptimization
##############################################################################
['(arch == arm or arch == arm64)', {
# Flaky tests: https://crbug.com/v8/8090
'regress/regress-752764': [SKIP],
}], # (arch == arm or arch == arm64)
##############################################################################
['gcov_coverage', {
# Tests taking too long.
'array-functions-prototype-misc': [SKIP],
# Stack overflow.
'big-array-literal': [SKIP],
}], # 'gcov_coverage'
##############################################################################
['variant == no_wasm_traps', {
# Skip stuff uninteresting for wasm traps
'bugs/*': [SKIP],
'compiler/*': [SKIP],
'es6/*': [SKIP],
'es7/*': [SKIP],
'es8/*': [SKIP],
'harmony/*': [SKIP],
'ignition/*': [SKIP],
'lithium/*': [SKIP],
'third_party/*': [SKIP],
'tools/*': [SKIP],
'apply': [SKIP],
'math-*': [SKIP],
'unicode-test': [SKIP],
'whitespaces': [SKIP],
}], # variant == no_wasm_traps
##############################################################################
['no_harness', {
# skip assertion tests since the stack trace is broken if mjsunit is
# included in the snapshot
'mjsunit-assertion-error': [SKIP],
}], # no_harness
##############################################################################
['arch != x64 or deopt_fuzzer', {
# Skip stress-deopt-count tests since it's in x64 only
'compiler/stress-deopt-count-*': [SKIP],
}], # arch != x64 or deopt_fuzzer
##############################################################################
# Liftoff is currently only sufficiently implemented on x64, ia32, arm64 and
# arm.
# TODO(clemensb): Implement on all other platforms (crbug.com/v8/6600).
['arch not in (x64, ia32, arm64, arm)', {
'wasm/liftoff': [SKIP],
'wasm/tier-up-testing-flag': [SKIP],
'wasm/tier-down-to-liftoff': [SKIP],
'wasm/wasm-dynamic-tiering': [SKIP],
}], # arch not in (x64, ia32, arm64, arm)
##############################################################################
['system != linux', {
# Multi-mapped mock allocator is only available on Linux.
'regress/regress-crbug-1041232': [SKIP],
'regress/regress-crbug-1104608': [SKIP],
}],
##############################################################################
['variant == turboprop', {
# Deopts differently than TurboFan.
'compiler/native-context-specialization-hole-check': [SKIP],
'compiler/number-comparison-truncations': [SKIP],
'compiler/redundancy-elimination': [SKIP],
'compiler/regress-9945-*': [SKIP],
'es6/super-ic-opt-no-turboprop': [SKIP],
# Static asserts for optimizations don't hold due to removed optimization
# phases.
'compiler/concurrent-inlining-1': [SKIP],
'compiler/concurrent-inlining-2': [SKIP],
'compiler/constant-fold-add-static': [SKIP],
'compiler/diamond-followedby-branch': [SKIP],
'compiler/is-being-interpreted-*': [SKIP],
'compiler/load-elimination-const-field': [SKIP],
'compiler/serializer-accessors': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-feedback-propagation-*': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
# Some tests rely on inlining.
'compiler/inlined-call-polymorphic': [SKIP],
'compiler/opt-higher-order-functions': [SKIP],
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
'es6/iterator-eager-deopt': [SKIP],
# In turboprop we reuse the optimized code on soft deopt. The following tests
# test for a soft deopt and they won't work in TurboProp.
'deopt-recursive-soft-once': [SKIP],
'regress/regress-3709': [SKIP],
'regress/regress-5790': [SKIP],
# const field tracking is disabled in turboprop
'const-field-tracking': [SKIP],
# Dynamic map checks doesn't use information from maps so we don't inline
# array builtins or track field representation.
'compiler/deopt-inlined-from-call': [SKIP],
'compiler/field-representation-tracking': [SKIP],
'field-type-tracking': [SKIP],
# We don't migrate deprecated maps with dynamic map checks. This will be
# fixed in a later cl.
# TODO(mythria): Reenable this when the cl that migrates deprecated maps
# lands
'regress/regress-932953': [FAIL],
# Tests failing for the lack of function context specialization in Turboprop.
'compiler/abstract-equal-receiver': [FAIL],
'compiler/constant-fold-cow-array': [FAIL],
'compiler/promise-resolve-stable-maps': [FAIL],
# https://crbug.com/v8/10894
'math-floor-of-div': [SLOW],
}], # variant == turboprop
##############################################################################
['variant == top_level_await', {
# specifically expects to fail on top level await.
'harmony/modules-import-15': [SKIP],
}], # variant == top_level_await
##############################################################################
['variant == stress_js_bg_compile_wasm_code_gc', {
# Runs significantly slower with --stress-wasm-code-gc, problematic
# especially in combination with tsan or other slow configurations.
'wasm/many-modules': [SKIP],
}], # variant == stress_js_bg_compile_wasm_code_gc
##############################################################################
['variant == assert_types', {
# Type assertions can lead to differences in representation selection,
# which in turn can lead to different deopt behavior.
'compiler/number-abs': [SKIP],
'compiler/number-toboolean': [SKIP],
}], # variant == assert_types
##############################################################################
['variant == stress_snapshot and arch != x64', {
# Deserialization fails due to read-only snapshot checksum verification.
# https://crbug.com/v8/10491
'*': [SKIP],
}], # variant == stress_snapshot and arch != x64
##############################################################################
['variant == stress_snapshot and arch == x64', {
# Crashes the serializer due to recursion.
'deep-recursion': [SKIP],
'string-replace-gc': [SKIP],
# Debug check failed:
# map == GetReadOnlyRoots(isolate).fixed_array_map() || map == GetReadOnlyRoots(isolate).fixed_cow_array_map().
# This means a mismatch of elements kinds / elements on the global object.
'es6/block-sloppy-function': [SKIP],
'es6/reflect-get-own-property-descriptor': [SKIP],
'es6/reflect': [SKIP],
'get-own-property-descriptor': [SKIP],
'global-properties': [SKIP],
'indexed-accessors': [SKIP],
'object-freeze-global': [SKIP],
'object-seal-global': [SKIP],
'regress/regress-1103': [SKIP],
'regress/regress-1112': [SKIP],
'regress/regress-1120': [SKIP],
'regress/regress-2346': [SKIP],
'regress/regress-489151': [SKIP],
'regress/regress-crbug-1002628': [SKIP],
'regress/regress-crbug-454091': [SKIP],
'regress/regress-crbug-663750': [SKIP],
'regress/regress-freeze-setter': [SKIP],
# TODO(v8:10494): asm Code objects can't be flushed and end up in the isolate
# serializer.
'asm/*': [SKIP],
'compiler/regress-439743': [SKIP],
'regress/regress-441099': [SKIP],
'regress/regress-617526': [SKIP],
'regress/regress-6196': [SKIP],
'regress/regress-677685': [SKIP],
'regress/regress-7893': [SKIP],
'regress/regress-799690': [SKIP],
'regress/regress-8377': [SKIP],
'regress/regress-crbug-1047368': [SKIP],
'regress/regress-crbug-898974': [SKIP],
'regress/regress-crbug-935800': [SKIP],
'regress/regress-crbug-976934': [SKIP],
'regress/wasm/*': [SKIP],
'wasm/*': [SKIP],
# Investigate (IsScript).
'harmony/import-from-compilation-errored': [SKIP],
'harmony/private-fields-special-object': [SKIP],
# Skip, since import errors since they refer to the script via debug symbols
'harmony/import-from-instantiation-errored': [SKIP],
# Investigate (JSFunction in startup serializer).
'regress/regress-1034394': [SKIP],
'regress/regress-863810': [SKIP],
'regress/regress-crbug-772056': [SKIP],
# The entire snapshotting code assumes that the snapshot size fits
# into an int, so it doesn't support huge TypedArrays.
'regress/regress-319722-ArrayBuffer': [SKIP],
'regress/regress-667603': [SKIP],
'regress/regress-crbug-1104608': [SKIP],
# Investigate (IsFixedArrayBase).
'regress/regress-786784': [SKIP],
'regress/regress-v8-9656': [SKIP],
# Investigate (startup_serializer_->ReferenceMapContains(obj)).
'regress/regress-813440': [SKIP],
# Investigate (segfault).
'regress/regress-crbug-397662': [SKIP],
# Script referenced only through context-dependent SourceTextModule
# https://bugs.chromium.org/p/v8/issues/detail?id=11073
'tools/processor': [SKIP],
}], # variant == stress_snapshot and arch == x64
##############################################################################
['variant == slow_path', {
# This tests creates a pretty big array and calls Array.prototype.slice on
# it. In the slow path, this results in one runtime call per element, which
# takes several minutes overall.
'regress/wasm/regress-9017': [SKIP],
}], # variant == slow_path
################################################################################
['variant == nci or variant == nci_as_midtier', {
# Deopts differently than TurboFan.
# Deoptimization support is still incomplete in general, since deopts can
# only happen when explicitly requested by tests. NCI code objects are then
# set as marked_for_deoptimization *and never unset*, which means functions
# with attached NCI code objects will never again count as optimized.
# TODO(jgruber): Fix this once deopts can occur outside tests.
'compiler/is-being-interpreted*': [SKIP],
'compiler/number-comparison-truncations': [SKIP],
'compiler/redundancy-elimination': [SKIP],
'compiler/regress-9945-*': [SKIP],
'regress/regress-1049982-1': [SKIP],
'regress/regress-1049982-2': [SKIP],
'compiler/test-dynamic-map-*': [SKIP],
'es6/collections-constructor-iterator-side-effect': [SKIP],
'es6/collections-constructor-with-modified-protoype': [SKIP],
# assertUnoptimized: assumes full turbofan pipeline.
'allocation-site-info': [SKIP],
'array-bounds-check-removal': [SKIP],
'array-constructor-feedback': [SKIP],
'array-literal-feedback': [SKIP],
'array-literal-transitions': [SKIP],
'array-push5': [SKIP],
'array-store-and-grow': [SKIP],
'check-bounds-array-index': [SKIP],
'check-bounds-string-from-char-code-at': [SKIP],
'compiler/abstract-equal-oddball': [SKIP],
'compiler/abstract-equal-receiver': [SKIP],
'compiler/abstract-equal-symbol': [SKIP],
'compiler/abstract-equal-undetectable': [SKIP],
'compiler/array-multiple-receiver-maps': [SKIP],
'compiler/bigint-add-no-deopt-loop': [SKIP],
'compiler/bound-functions-serialize': [SKIP],
'compiler/concurrent-invalidate-transition-map': [SKIP],
'compiler/concurrent-proto-change': [SKIP],
'compiler/constant-fold-cow-array': [SKIP],
'compiler/dataview-deopt': [SKIP],
'compiler/dataview-detached': [SKIP],
'compiler/dataview-get': [SKIP],
'compiler/dataview-set': [SKIP],
'compiler/deopt-inlined-from-call': [SKIP],
'compiler/field-representation-tracking': [SKIP],
'compiler/globals-change-writable': [SKIP],
'compiler/globals-freeze-*': [SKIP],
'compiler/manual-concurrent-recompile': [SKIP],
'compiler/native-context-specialization-hole-check': [SKIP],
'compiler/number-divide': [SKIP],
'compiler/opt-higher-order-functions': [SKIP],
'compiler/promise-resolve-stable-maps': [SKIP],
'compiler/regress-905555-2': [SKIP],
'compiler/regress-905555': [SKIP],
'compiler/regress-9945-1': [SKIP],
'compiler/regress-9945-2': [SKIP],
'compiler/stress-deopt-count-2': [SKIP],
'compiler/strict-equal-receiver': [SKIP],
'compiler/string-from-code-point': [SKIP],
'concurrent-initial-prototype-change': [SKIP],
'const-field-tracking-2': [SKIP],
'const-field-tracking': [SKIP],
'deopt-recursive-eager-once': [SKIP],
'deopt-recursive-lazy-once': [SKIP],
'deopt-recursive-soft-once': [SKIP],
'deopt-unlinked': [SKIP],
'deopt-with-fp-regs': [SKIP],
'ensure-growing-store-learns': [SKIP],
'es6/array-iterator-turbo': [SKIP],
'es6/iterator-eager-deopt': [SKIP],
'es6/iterator-lazy-deopt': [SKIP],
'field-type-tracking': [SKIP],
'frozen-array-reduce': [SKIP],
'getters-on-elements': [SKIP],
'harmony/regexp-overriden-exec': [SKIP],
'keyed-load-hole-to-undefined': [SKIP],
'keyed-load-with-symbol-key': [SKIP],
'mjsunit_numfuzz': [SKIP],
'mjsunit': [SKIP],
'never-optimize': [SKIP],
'non-extensible-array-reduce': [SKIP],
'noopt': [SKIP],
'object-seal': [SKIP],
'optimized-array-every': [SKIP],
'optimized-array-findindex': [SKIP],
'optimized-array-find': [SKIP],
'optimized-array-some': [SKIP],
'optimized-filter': [SKIP],
'optimized-map': [SKIP],
'regress/regress-1016450': [SKIP],
'regress/regress-1034449': [SKIP],
'regress/regress-1073440': [SKIP],
'regress/regress-1112155': [SKIP],
'regress/regress-347914': [SKIP],
'regress/regress-3709': [SKIP],
'regress/regress-385565': [SKIP],
'regress/regress-410912': [SKIP],
'regress/regress-618608': [SKIP],
'regress/regress-9002': [SKIP],
'regress/regress-9441': [SKIP],
'regress/regress-961709-classes-opt': [SKIP],
'regress/regress-bind-deoptimize': [SKIP],
'regress/regress-crbug-500497': [SKIP],
'regress/regress-crbug-594183': [SKIP],
'regress/regress-embedded-cons-string': [SKIP],
'regress/regress-unlink-closures-on-deopt': [SKIP],
'regress/wasm/regress-02256b': [SKIP],
'regress/wasm/regress-02256': [SKIP],
'sealed-array-reduce': [SKIP],
'setters-on-elements': [SKIP],
'smi-mul-const': [SKIP],
'smi-mul': [SKIP],
'unary-minus-deopt': [SKIP],
# TurbofanStaticAssert: assumes full turbofan pipeline.
'compiler/catch-block-load': [SKIP],
'compiler/concurrent-inlining-1': [SKIP],
'compiler/concurrent-inlining-2': [SKIP],
'compiler/constant-fold-add-static': [SKIP],
'compiler/construct-bound-function': [SKIP],
'compiler/construct-object': [SKIP],
'compiler/construct-receiver': [SKIP],
'compiler/diamond-followedby-branch': [SKIP],
'compiler/inlined-call-polymorphic': [SKIP],
'compiler/js-create-arguments': [SKIP],
'compiler/js-create': [SKIP],
'compiler/load-elimination-const-field': [SKIP],
'compiler/serializer-accessors': [SKIP],
'compiler/serializer-apply': [SKIP],
'compiler/serializer-call': [SKIP],
'compiler/serializer-dead-after-jump': [SKIP],
'compiler/serializer-dead-after-return': [SKIP],
'compiler/serializer-feedback-propagation-1': [SKIP],
'compiler/serializer-feedback-propagation-2': [SKIP],
'compiler/serializer-transition-propagation': [SKIP],
# crbug.com/v8/11110
'es6/super-ic-opt*': [SKIP],
# Rely on optimizations not yet enabled for NCI. For example, preserving
# kIdentifyZero for kNumberFloor (and thus avoiding later deopts) only works
# if the JSCallReducer reduces the Math.floor builtin call to the
# kNumberFloor operator.
'compiler/number-floor': [SKIP],
'compiler/number-ceil': [SKIP],
'compiler/number-min': [SKIP],
'compiler/number-modulus': [SKIP],
'compiler/number-toboolean': [SKIP],
'compiler/number-abs': [SKIP],
'compiler/number-round': [SKIP],
'compiler/number-max': [SKIP],
'compiler/number-trunc': [SKIP],
}], # variant == nci or variant == nci_as_midtier
['((arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips) or (arch in [ppc64, s390x])', {
# Requires scalar lowering for 64x2 SIMD instructions, which are not
# implemented yet.
# Also skip tests on archs that don't support SIMD and lowering doesn't yet work correctly.
# Condition copied from cctest.status.
'regress/wasm/regress-10831': [SKIP],
}], # ((arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips) or (arch in [ppc64, s390x])
##############################################################################
['variant == stress_sampling', {
# https://bugs.chromium.org/p/v8/issues/detail?id=10915
'harmony/weakrefs/stress-finalizationregistry-dirty-enqueue': [SKIP],
'regress/regress-484544': [SKIP],
'regress/regress-543994': [SKIP],
'regress/regress-crbug-1041232': [SKIP],
'regress/regress-set-flags-stress-compact': [SKIP],
}], # variant == stress_sampling
]