v8/test/cctest/cctest.status
Paolo Severini 6ada6a90ee Reland "Faster JS-to-Wasm calls"
This is a reland of 860fcb1bd2

- Disabled the tests for this feature in V8-lite mode (the original
change broke V8-lite tests)
- Also modified test console-profile-wasm.js that was brittle with this
change because it assumed that there was always a JS-to-Wasm wrapper
but this is not the case when the TurboFan compilation completes before
the Liftoff-compiled code starts to run.

More changes in Patchset 8:

- Moved inlining of the "JSToWasm Wrapper" away from simplified-lowering,
into a new phase, wasm-inlining that reuses the JSInliner reducer.
The doc
https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit#
describes the new logic.

- Fixed a couple of small issues in wasm_compiler.cc to make sure that
the graph "JSToWasm Wrapper" subgraph has a valid Control chain;
this should solve the problem we had inlining the calls in functions
that can throw exception.


Original change's description:
> Faster JS-to-Wasm calls
>
> This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/.
>
> Currently JS-to-Wasm calls go through a wrapper/trampoline, built on
> the basis of the signature of a Wasm function to call, and whose task
> is to:
> - set "thread_in_wasm_flag" to true
> - convert the arguments from tagged types into Wasm native types
> - calculate the address of the Wasm function to call and call it
> - convert back the result from Wasm native types into tagged types
> - reset "thread_in_wasm_flag" to false.
>
> This CL tries to improve the performance of JS-to-Wasm calls by
> inlining the code of the JS-to-Wasm wrappers in the call site.
>
> It introduces a new IR operand, JSWasmCall, which replaces JSCall for
> this kind of calls. A 'JSWasmCall' node is associated to
> WasmCallParameters, which contain information about the signature of
> the Wasm function to call.
>
> WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid generating code to convert the types for the arguments
> of the Wasm function, when the conversion is not necessary.
> The actual inlining of the graph generated for this wrapper happens in
> the simplified-lowering phase.
>
> A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage
> lazy deoptimizations that can happen if the Wasm function callee calls
> back some JS code that invalidates the compiled JS caller function.
>
> Bug: v8:11092
> Change-Id: I3174c1c1f59b39107b333d1929ecc0584486b8ad
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557538
> Reviewed-by: Igor Sheludko <ishell@chromium.org>
> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
> Reviewed-by: Georg Neis (ooo until January 5) <neis@chromium.org>
> Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
> Reviewed-by: Maya Lekova <mslekova@chromium.org>
> Reviewed-by: Andreas Haas <ahaas@chromium.org>
> Commit-Queue: Paolo Severini <paolosev@microsoft.com>
> Cr-Commit-Position: refs/heads/master@{#71824}

Bug: v8:11092
Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng
Change-Id: I7d8523fa916bf4029a31f8c7a72bbd93336dc0b9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596784
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Reviewed-by: Maya Lekova <mslekova@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Commit-Queue: Paolo Severini <paolosev@microsoft.com>
Cr-Commit-Position: refs/heads/master@{#72147}
2021-01-19 11:54:38 +00:00

672 lines
29 KiB
Plaintext

# Copyright 2011 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, {
# All tests prefixed with 'Bug' are expected to fail.
'test-api/Bug*': [FAIL],
##############################################################################
# These tests always fail. They are here to test test.py. If
# they don't fail then test.py has failed.
'test-serialize/TestThatAlwaysFails': [FAIL],
'test-api/SealHandleScope': [FAIL],
# These tests are expected to hit a CHECK (i.e. a FAIL result actually means
# the test passed).
'test-api/RegExpInterruptAndReenterIrregexp': [FAIL, CRASH],
'test-verifiers/Fail*': [FAIL, CRASH],
# This test always fails. It tests that LiveEdit causes abort when turned off.
'test-debug/LiveEditDisabled': [FAIL],
# This test always fails. It tests that DisallowJavascriptExecutionScope
# works as intended.
'test-api/DisallowJavascriptExecutionScope': [FAIL],
# We do not yet shrink weak maps after they have been emptied by the GC
'test-weakmaps/Shrinking': [FAIL],
'test-weaksets/WeakSet_Shrinking': [FAIL],
# Boot up memory use is bloated in debug mode.
'test-mark-compact/BootUpMemoryUse': [PASS, ['mode == debug', FAIL]],
# This tests only that the preparser and parser agree, so there is no point in
# running several variants. Note that this still takes ages, because there
# are actually 13 * 38 * 5 * 128 = 316160 individual tests hidden here.
'test-parsing/ParserSync': [PASS, NO_VARIANTS],
# This tests only the type system, no point in running several variants.
'test-types/*': [PASS, NO_VARIANTS],
# This tests API threading, no point in running several variants.
'test-api/Threading*': [PASS, SLOW, NO_VARIANTS],
# TODO(ulan): Renable after fixing the test's brittleness.
'test-heap/OutOfMemory': [SKIP],
# BUG(5193). The cpu profiler tests are notoriously flaky.
'test-cpu-profiler/CollectCpuProfile': [SKIP],
'test-cpu-profiler/JsNative1JsNative2JsSample': [SKIP],
'test-cpu-profiler/JsNativeJsRuntimeJsSample': [SKIP],
'test-cpu-profiler/JsNativeJsRuntimeJsSampleMultiple': [SKIP],
'test-cpu-profiler/JsNativeJsSample': [SKIP],
'test-cpu-profiler/HotDeoptNoFrameEntry': [SKIP],
'test-cpu-profiler/SampleWhenFrameIsNotSetup': [SKIP],
'test-sampler/LibSamplerCollectSample': [SKIP],
# BUG(7202). The test is flaky.
'test-cpu-profiler/NativeFrameStackTrace': [SKIP],
# BUG(7054)
'test-cpu-profiler/StaticCollectSampleAPI': [SKIP],
# BUG(2340). Preprocessing stack traces is disabled at the moment.
'test-heap/PreprocessStackTrace': [FAIL],
# BUG(4333). Function name inferrer does not work for ES6 clases.
'test-func-name-inference/UpperCaseClass': [FAIL],
'test-func-name-inference/LowerCaseClass': [FAIL],
# BUG(3742).
'test-mark-compact/MarkCompactCollector': [PASS, ['arch==arm', NO_VARIANTS]],
# Test that serialization with unknown external reference fails.
'test-serialize/SnapshotCreatorUnknownExternalReferences': [FAIL],
'test-serialize/SnapshotCreatorUnknownHandles': [FAIL],
'test-serialize/SnapshotCreatorNoExternalReferencesCustomFail1': [FAIL],
'test-serialize/SnapshotCreatorNoExternalReferencesCustomFail2': [FAIL],
# BUG(v8:8296). Flaky OOM test.
'test-heap/OutOfMemorySmallObjects': [SKIP],
# BUG(v8:8739). Wasm interpreter does not create proper stack traces.
'test-wasm-stack/RunWasmInterpreter_CollectDetailedWasmStack_WasmError': [SKIP],
# https://crbug.com/v8/8919
'test-platform/StackAlignment': [PASS, ['not is_clang', SKIP]],
# Test that misuse of PopAndReturn does not compile.
'test-code-stub-assembler/PopAndReturnFromJSBuiltinWithStackParameters' : [FAIL],
'test-code-stub-assembler/PopAndReturnFromTFCBuiltinWithStackParameters' : [FAIL],
# These tests are supposed to fail in a slow DCHECK, skip them otherwise.
'test-local-handles/DereferenceLocalHandleFailsWhenDisallowed': [SKIP, ['mode == debug', FAIL]],
'test-persistent-handles/DereferencePersistentHandleFailsWhenDisallowed': [SKIP, ['mode == debug', FAIL]],
############################################################################
# Slow tests.
'test-debug/CallFunctionInDebugger': [PASS, ['mode == debug', SLOW]],
'test-heap-profiler/ManyLocalsInSharedContext': [PASS, SLOW],
'test-jump-table-assembler/JumpTablePatchingStress': [PASS, SLOW],
'test-strings/StringOOM*': [PASS, ['mode == debug', SKIP]],
'test-serialize/CustomSnapshotDataBlobImmortalImmovableRoots': [PASS, ['mode == debug', SKIP]],
'test-parsing/ObjectRestNegativeTestSlow': [PASS, ['mode == debug', SKIP]],
}], # ALWAYS
##############################################################################
['mode == debug', {
'test-persistent-handles/NewPersistentHandleFailsWhenParked': [FAIL],
'test-persistent-handles/NewPersistentHandleFailsWhenParkedExplicit': [FAIL],
}],
##############################################################################
['tsan == True', {
# BUG(v8:9869) TSAN considers SIGPROF an asynchronous signal, and will call
# into the handler after the stack has drifted from the context on the
# signal.
'test-cpu-profiler/*': [SKIP],
}],
##############################################################################
['arch == arm64', {
# BUG(v8:3385).
'test-serialize/StartupSerializerOnceRunScript': [PASS, FAIL],
'test-serialize/StartupSerializerTwiceRunScript': [PASS, FAIL],
# BUG(v8:3154).
'test-heap/ReleaseOverReservedPages': [PASS, FAIL],
# BUG(v8:3155).
'test-strings/OneByteArrayJoin': [PASS, ['mode == debug', FAIL]],
# BUG(v8:3247).
'test-mark-compact/NoPromotion': [SKIP],
# BUG(v8:3446).
'test-mark-compact/Promotion': [PASS, FAIL],
# BUG(v8:3434).
'test-api/LoadICFastApi_DirectCall_GCMoveStubWithProfiler': [SKIP],
}], # 'arch == arm64'
['arch == arm64 and simulator_run', {
# Pass but take too long with the simulator.
'test-api/ExternalArrays': [PASS, SLOW],
'test-api/Threading*': [SKIP],
'test-cpu-profiler/MultipleIsolates': [PASS, ['not pointer_compression', SLOW]],
'test-debug/DebugBreakStackTrace': [PASS, SLOW],
}], # 'arch == arm64 and simulator_run'
['arch == arm64 and system == macos and not simulator_run', {
# printf, being a variadic function, has a different, stack-based ABI on
# Apple silicon. See:
# https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html
'test-assembler-arm64/printf_no_preserve': [SKIP],
}], # arch == arm64 and system == macos and not simulator_run
##############################################################################
['variant == nooptimization and (arch == arm or arch == arm64) and simulator_run', {
# Slow tests: https://crbug.com/v8/7783
'test-cpu-profiler/MultipleIsolates': [SKIP],
}], # variant == nooptimization and (arch == arm or arch == arm64) and simulator_run
##############################################################################
['variant == nooptimization', {
# Wasm serialization relies on TurboFan to be available, hence does not work
# in the 'nooptimization' variant.
'test-wasm-serialization/*': [SKIP],
'test-streaming-compilation/SingleThreadedTestDeserializationBypassesCompilation': [SKIP],
'test-streaming-compilation/SingleThreadedTestDeserializationFails': [SKIP],
'test-streaming-compilation/AsyncTestDeserializationFails': [SKIP],
'test-streaming-compilation/AsyncTestDeserializationBypassesCompilation': [SKIP],
}], # variant == nooptimization
##############################################################################
['asan == True', {
# Skip tests not suitable for ASAN.
'test-assembler-x64/AssemblerX64XchglOperations': [SKIP],
# BUG(v8:7587): Strange breakage on Mac.
'test-log-stack-tracer/PureJSStackTrace': [SKIP],
}], # 'asan == True'
##############################################################################
['msan == True', {
# ICU upstream issues.
'test-strings/CountBreakIterator': [SKIP],
# BUG(v8:10244): MSAN finding uninitialized bytes during memcmp
'test-code-stub-assembler/SmallOrderedHashSetAllocate': [SKIP],
'test-code-stub-assembler/SmallOrderedHashMapAllocate': [SKIP],
}], # 'msan == True'
##############################################################################
['tsan == True', {
# BUG(v8:6924). The test allocates a lot of memory.
'test-api/NewStringRangeError': [PASS, NO_VARIANTS],
}], # 'tsan == True'
##############################################################################
['is_full_debug', {
# Tests too slow in non-optimized debug mode.
'test-api/InternalFieldsSubclassing': [SKIP],
'test-concurrent-allocation/ConcurrentAllocationInLargeSpace': [SKIP],
'test-heap/TestInternalWeakLists': [SKIP],
}], # 'is_full_debug'
##############################################################################
['byteorder == big', {
# Skip Wasm atomic tests on big-endian machines.
# There is no support to emulate atomic Wasm operations on big-endian
# platforms, since this would require bit swapping as a part of atomic
# operations.
'test-run-wasm-atomics/*': [SKIP],
'test-run-wasm-atomics64/*': [SKIP],
'test-regexp/Peephole*': [SKIP],
}], # 'byteorder == big'
##############################################################################
['system == windows', {
# BUG(v8:4642).
'test-lockers/LockAndUnlockDifferentIsolates': [PASS, NO_VARIANTS],
# BUG(v8:8744).
'test-cpu-profiler/FunctionCallSample': [SKIP],
# BUG(10107): Failing flakily
'test-cpu-profiler/Inlining2': ['arch == ia32 and mode == debug', SKIP],
'test-cpu-profiler/CrossScriptInliningCallerLineNumbers': ['arch == ia32 and mode == debug', SKIP],
'test-cpu-profiler/CrossScriptInliningCallerLineNumbers2': ['arch == ia32 and mode == debug', SKIP],
# BUG(v8:10996): Flaky on Win32
'test-cpu-profiler/StartProfilingAfterOsr': ['arch == ia32', SKIP],
}], # 'system == windows'
##############################################################################
['system == windows and arch == x64 and mode == debug', {
# BUG(v8:6328).
'test-serialize/ContextSerializerCustomContext': [SKIP],
'test-serialize/ContextSerializerObject': [SKIP],
'test-serialize/StartupSerializerOnce': [SKIP],
'test-serialize/StartupSerializerOnceRunScript': [SKIP],
'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
'test-serialize/StartupSerializerTwice': [SKIP],
}], # 'system == windows and arch == x64 and mode == debug'
##############################################################################
['arch == arm and simulator_run', {
# Pass but take too long with the simulator.
'test-api/Threading*': [SKIP],
'test-cpu-profiler/MultipleIsolates': [PASS, SLOW],
}], # 'arch == arm and simulator_run'
##############################################################################
['arch == arm', {
# BUG(355): Test crashes on ARM.
'test-log/ProfLazyMode': [SKIP],
# BUG(1075): Unresolved crashes.
'test-serialize/StartupSerializerOnce': [SKIP],
'test-serialize/StartupSerializerTwice': [SKIP],
'test-serialize/StartupSerializerOnceRunScript': [SKIP],
'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
}], # 'arch == arm'
##############################################################################
['arch == arm and not simulator_run', {
# crbug.com/v8/7605
'test-heap/OutOfMemorySmallObjects': [SKIP],
}], # 'arch == arm and not simulator_run'
##############################################################################
['arch == mipsel or arch == mips', {
# TODO(mips-team): Improve code-size on large RegExp's.
'test-heap/TestSizeOfRegExpCode': [SKIP],
# BUG(1075): Unresolved crashes on MIPS also.
'test-serialize/StartupSerializerOnce': [SKIP],
'test-serialize/StartupSerializerTwice': [SKIP],
'test-serialize/StartupSerializerOnceRunScript': [SKIP],
'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
}], # 'arch == mipsel or arch == mips'
##############################################################################
['arch == mips', {
# Too slow with TF.
'test-api/ExternalArrays': [PASS, NO_VARIANTS],
# TODO(mips-team): Currently fails on mips board.
'test-parsing/TooManyArguments': [SKIP],
'test-api/Threading5': [SKIP],
'test-api/Threading6': [SKIP],
}], # 'arch == mips'
##############################################################################
['arch == mips64', {
# TODO(mips-team): Currently fails on mips64 board.
'test-run-wasm/RunWasmLiftoff_I32Binop*': [SKIP],
}], # 'arch == mips64'
##############################################################################
['arch == mips64el or arch == mips64', {
# BUG(v8:3154).
'test-heap/ReleaseOverReservedPages': [PASS, FAIL],
# TODO(mips-team): Improve code-size on large RegExp's.
'test-heap/TestSizeOfRegExpCode': [SKIP],
# BUG(1075): Unresolved crashes on MIPS also.
'test-serialize/StartupSerializerOnce': [SKIP],
'test-serialize/StartupSerializerTwice': [SKIP],
'test-serialize/StartupSerializerOnceRunScript': [SKIP],
'test-serialize/StartupSerializerTwiceRunScript': [SKIP],
}], # 'arch == mips64el or arch == mips64'
##############################################################################
['(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips', {
# Skip tests that fail on MIPS architectures which don't support SIMD,
# because lowering mechanism doesn't work properly
'test-run-wasm-simd/RunWasm_ReductionTest4_compiled': [SKIP],
'test-run-wasm-simd/RunWasm_ReductionTest8_compiled': [SKIP],
'test-run-wasm-simd/RunWasm_ReductionTest16_compiled': [SKIP],
'test-run-wasm-simd-liftoff/*': [SKIP],
}], # '(arch == mipsel or arch == mips64el or arch == mips or arch == mips64) and not simd_mips'
##############################################################################
['arch == mips or arch == mips64', {
# TODO(mips-team): Implement I64Atomic operations on MIPS
'test-run-wasm-atomics64/*': [SKIP],
}], # 'arch == mipsel or arch == mips64el or arch == mips or arch == mips64'
##############################################################################
['mips_arch_variant == r6', {
# For MIPS[64] architecture release 6, fusion multiply-accumulate instructions
# will cause failures on several tests that expect exact floating-point
# results.
'test-run-machops/RunFloat64MulAndFloat64Add1': [SKIP],
'test-run-machops/RunFloat64MulAndFloat64Add2': [SKIP],
'test-run-machops/RunFloat64MulAndFloat64Sub1': [SKIP],
'test-run-machops/RunFloat64MulAndFloat64Sub2': [SKIP],
}], # 'mips_arch_variant == r6'
##############################################################################
['system == android', {
# Uses too much memory.
'test-api/NewStringRangeError': [SKIP],
}], # 'system == android'
##############################################################################
['system != android and arch in [arm, arm64] and not simulator_run', {
# Consumes too much memory on ODROIDs in debug mode and optimize_for_size.
'test-code-generator/FuzzAssemble*': [PASS, ['(mode == debug) and optimize_for_size', SKIP]],
# BUG(chromium:1163847): Seems to break on ODROIDs with recent Clang rolls.
'test-loop-analysis/LaEdgeMatrix2_0': [PASS, FAIL]
}], # 'system != android and arch in [arm, arm64] and not simulator_run'
##############################################################################
['system == aix or (arch == ppc64 and byteorder == big)', {
# TODO(ppc): Fix for platforms with function desciptors.
'test-run-machops/RunComputedCodeObject' : [SKIP],
'test-run-wasm-module/Run_WasmModule_Return114' : [SKIP],
'test-run-wasm-module/Run_WasmModule_CallAdd' : [SKIP],
'test-run-wasm-module/Run_WasmModule_CallMain_recursive' : [SKIP],
# TODO(ppc): Implement load/store reverse byte instructions
'test-run-wasm-simd/RunWasm_SimdLoadStoreLoad': [SKIP],
'test-run-wasm-simd/RunWasm_SimdLoadStoreLoad_turbofan': [SKIP],
# slow in PASE emulator
'test-cpu-profiler/Inlining2': [PASS, SLOW],
'test-cpu-profiler/CollectCpuProfileCallerLineNumbers': [PASS, SLOW],
}], # 'system == aix or (arch == ppc64 and byteorder == big)'
##############################################################################
['arch == ppc and simulator_run or arch == ppc64 and simulator_run', {
# Pass but take too long with the simulator.
'test-api/Threading*': [PASS, SLOW],
'test-api/ExternalArrays': [PASS, SLOW],
}], # 'arch == ppc64 and simulator_run'
##############################################################################
['arch == ppc or arch == ppc64 or arch == s390 or arch == s390x', {
# TODO(ppc/s390): support concurrent patching of jump table
'test-jump-table-assembler/*': [SKIP],
# Liftoff is not currently supported on ppc and s390
'test-liftoff-*': [SKIP],
'test-wasm-breakpoints/*' : [SKIP],
'test-run-wasm-module/Run_WasmModule_CompilationHintsNoTiering': [SKIP],
'test-wasm-serialization/TierDownAfterDeserialization': [SKIP],
'test-gc/RunWasmLiftoff*': [SKIP],
# SIMD not fully implemented yet
'test-run-wasm-simd-liftoff/*': [SKIP],
}], # 'arch == ppc or arch == ppc64 or arch == s390 or arch == s390x'
['arch == ppc64', {
# https://crbug.com/v8/8766
'test-bytecode-generator/WideRegisters': [SKIP],
}],
##############################################################################
['variant == stress_incremental_marking', {
'test-heap-profiler/SamplingHeapProfiler': [SKIP],
}], # variant == stress_incremental_marking
##############################################################################
['variant == stress_js_bg_compile_wasm_code_gc', {
# The test relies on deterministic compilation.
'test-compiler/DecideToPretenureDuringCompilation': [SKIP],
# The test relies on deterministic allocation during compilation.
'test-compiler/DeepEagerCompilationPeakMemory': [SKIP],
}], # variant == stress_js_bg_compile_wasm_code_gc
##############################################################################
['variant == no_wasm_traps', {
'test-accessors/*': [SKIP],
'test-api-interceptors/*': [SKIP],
'test-api-stack-traces/*': [SKIP],
'test-api/*': [SKIP],
'test-bignum-dtoa/*': [SKIP],
'test-cpu-profiler/*': [SKIP],
'test-debug/*': [SKIP],
'test-global-handles/*': [SKIP],
'test-heap-profiler/*': [SKIP],
'test-heap/*': [SKIP],
'test-inobject-slack-tracking/*': [SKIP],
'test-lockers/*': [SKIP],
'test-run-machops/*': [SKIP],
'test-serialize/*': [SKIP],
'test-strings/*': [SKIP],
'test-field-type-tracking/*': [SKIP],
'test-parsing/*': [SKIP],
'test-page-promotion/*': [SKIP],
'test-decls/*': [SKIP],
'test-log/*': [SKIP],
'test-gap-resolver/*': [SKIP],
'test-dtoa/*': [SKIP],
}], # variant == no_wasm_traps
##############################################################################
# The stack unwinder API is only supported on x64, arm64 and arm.
['arch != x64 and arch != arm64 and arch != arm', {
'test-unwinder-code-pages/*': [SKIP]
}],
##############################################################################
['lite_mode or variant == jitless', {
# Slow tests
'test-heap/IncrementalMarkingStepMakesBigProgressWithLargeObjects': [SKIP],
# TODO(v8:7777): Re-enable once wasm is supported in jitless mode.
'test-api/WasmI32AtomicWaitCallback': [SKIP],
'test-api/WasmI64AtomicWaitCallback': [SKIP],
'test-api-wasm/WasmStreaming*': [SKIP],
'test-backing-store/Run_WasmModule_Buffer_Externalized_Regression_UseAfterFree': [SKIP],
'test-c-wasm-entry/*': [SKIP],
'test-compilation-cache/*': [SKIP],
'test-jump-table-assembler/*': [SKIP],
'test-gc/*': [SKIP],
'test-grow-memory/*': [SKIP],
'test-js-to-wasm/*': [SKIP],
'test-liftoff-inspection/*': [SKIP],
'test-run-wasm*': [SKIP],
'test-streaming-compilation/*': [SKIP],
'test-wasm-breakpoints/*': [SKIP],
'test-wasm-codegen/*': [SKIP],
'test-wasm-import-wrapper-cache/*': [SKIP],
'test-wasm-metrics/*': [SKIP],
'test-wasm-serialization/*': [SKIP],
'test-wasm-shared-engine/*': [SKIP],
'test-wasm-stack/*': [SKIP],
'test-wasm-trap-position/*': [SKIP],
'wasm-run-utils/*': [SKIP],
# Tests that generate code at runtime.
'codegen-tester/*': [SKIP],
'serializer-tester/*': [SKIP],
'test-accessor-assembler/*': [SKIP],
'test-assembler-*': [SKIP],
'test-basic-block-profiler/*': [SKIP],
'test-branch-combine/*': [SKIP],
'test-code-assembler/*': [SKIP],
'test-code-generator/*': [SKIP],
'test-code-pages/*': [SKIP],
'test-code-stub-assembler/*': [SKIP],
'test-debug-helper/GetObjectProperties': [SKIP],
'test-disasm-x64/DisasmX64': [SKIP],
'test-js-context-specialization/*': [SKIP],
'test-macro-assembler-x64/EmbeddedObj': [SKIP],
'test-multiple-return/*': [SKIP],
'test-regexp/MacroAssemblernativeAtStart': [SKIP],
'test-regexp/MacroAssemblerNativeBackReferenceLATIN1': [SKIP],
'test-regexp/MacroAssemblerNativeBackReferenceUC16': [SKIP],
'test-regexp/MacroAssemblerNativeBackRefNoCase': [SKIP],
'test-regexp/MacroAssemblerNativeBacktrack': [SKIP],
'test-regexp/MacroAssemblerNativeLotsOfRegisters': [SKIP],
'test-regexp/MacroAssemblerNativeRegisters': [SKIP],
'test-regexp/MacroAssemblerNativeSimple': [SKIP],
'test-regexp/MacroAssemblerNativeSimpleUC16': [SKIP],
'test-regexp/MacroAssemblerNativeSuccess': [SKIP],
'test-regexp/MacroAssemblerStackOverflow': [SKIP],
'test-regexp/Graph': [SKIP],
'test-run-bytecode-graph-builder/*': [SKIP],
'test-run-calls-to-external-references/*': [SKIP],
'test-run-deopt/*': [SKIP],
'test-run-intrinsics/*': [SKIP],
'test-run-jsbranches/*': [SKIP],
'test-run-jscalls/*': [SKIP],
'test-run-jsexceptions/*': [SKIP],
'test-run-jsobjects/*': [SKIP],
'test-run-jsops/*': [SKIP],
'test-run-load-store/*': [SKIP],
'test-run-machops/*': [SKIP],
'test-run-native-calls/*': [SKIP],
'test-run-retpoline/*': [SKIP],
'test-run-stackcheck/*': [SKIP],
'test-run-tail-calls/*': [SKIP],
'test-run-unwinding-info/*': [SKIP],
'test-run-variables/*': [SKIP],
'test-serialize/*': [SKIP],
'test-torque/*': [SKIP],
'test-unwinder-code-pages/PCIsInV8_LargeCodeObject_CodePagesAPI': [SKIP],
# Field representation tracking is disabled in jitless mode.
'test-field-type-tracking/*': [SKIP],
# Instruction cache flushing is disabled in jitless mode.
'test-icache/*': [SKIP],
}], # lite_mode or variant == jitless
##############################################################################
['lite_mode', {
# TODO(v8:8510): Tests that currently fail with lazy source positions.
'test-cpu-profiler/Inlining2': [SKIP],
# TODO(mythria): Code logging tests that currently fail with lazy feedback
# allocation. Fix logging to work without feedback vectors and enable these
# tests in lite_mode.
'test-log/ExternalCodeEventListenerWithInterpretedFramesNativeStack': [SKIP],
'test-log/LogInterpretedFramesNativeStack': [SKIP],
'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP],
'test-serialize/CodeSerializerOnePlusOneWithInterpretedFramesNativeStack': [SKIP]
}], # lite_mode
##############################################################################
['variant == jitless', {
# https://crbug.com/v8/7777
'serializer-tester/SerializeCallAnyReceiver': [SKIP],
'serializer-tester/SerializeCallArguments': [SKIP],
'serializer-tester/SerializeCallProperty': [SKIP],
'serializer-tester/SerializeCallProperty2': [SKIP],
'serializer-tester/SerializeCallUndefinedReceiver': [SKIP],
'serializer-tester/SerializeCallUndefinedReceiver2': [SKIP],
'serializer-tester/SerializeCallWithSpread': [SKIP],
'serializer-tester/SerializeConstruct': [SKIP],
'serializer-tester/SerializeConstructWithSpread': [SKIP],
'serializer-tester/SerializeInlinedClosure': [SKIP],
'serializer-tester/SerializeInlinedFunction': [SKIP],
'test-api/TurboAsmDisablesDetach': [SKIP],
'test-cpu-profiler/TickLinesOptimized': [SKIP],
'test-heap/TestOptimizeAfterBytecodeFlushingCandidate': [SKIP],
'test-js-to-wasm/*': [SKIP],
'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchCallDirect': [SKIP],
'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchCallExternal': [SKIP],
'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchCallIndirect': [SKIP],
'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchThrow': [SKIP],
'test-run-wasm-exceptions/RunWasmInterpreter_TryCatchTrapTypeError': [SKIP],
'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchCallDirect': [SKIP],
'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchCallExternal': [SKIP],
'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchCallIndirect': [SKIP],
'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchThrow': [SKIP],
'test-run-wasm-exceptions/RunWasmLiftoff_TryCatchTrapTypeError': [SKIP],
'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchCallDirect': [SKIP],
'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchCallExternal': [SKIP],
'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchCallIndirect': [SKIP],
'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchThrow': [SKIP],
'test-run-wasm-exceptions/RunWasmTurbofan_TryCatchTrapTypeError': [SKIP],
# --interpreted-frames-native-stack tests
'test-log/ExternalCodeEventListenerWithInterpretedFramesNativeStack': [SKIP],
'test-log/LogInterpretedFramesNativeStack': [SKIP],
'test-log/LogInterpretedFramesNativeStackWithSerialization': [SKIP],
'test-serialize/CodeSerializerOnePlusOneWithInterpretedFramesNativeStack': [SKIP],
'test-interpreter/InterpreterWithNativeStack': [SKIP],
# Crashes on native arm.
'test-macro-assembler-arm/ExtractLane': [PASS, ['arch == arm and not simulator_run', SKIP]],
'test-macro-assembler-arm/LoadAndStoreWithRepresentation': [PASS, ['arch == arm and not simulator_run', SKIP]],
'test-macro-assembler-arm/ReplaceLane': [PASS, ['arch == arm and not simulator_run', SKIP]],
# Too slow on arm64 simulator on Mac.
'test-cpu-profiler/MultipleIsolates': [PASS, ['arch == arm64 and system == macos and simulator_run', SKIP]],
}], # variant == jitless
##############################################################################
['variant == turboprop', {
# Require inlining.
'test-cpu-profiler/DeoptAtFirstLevelInlinedSource': [SKIP],
'test-cpu-profiler/DeoptAtSecondLevelInlinedSource': [SKIP],
'test-cpu-profiler/DeoptUntrackedFunction': [SKIP],
# Turboprop doesn't use call feedback and hence doesn't inline even if
# the inlining flag is explicitly set.
'test-cpu-profiler/DetailedSourcePositionAPI_Inlining': [SKIP],
'serializer-tester/BoundFunctionArguments': [SKIP],
'serializer-tester/BoundFunctionTarget': [SKIP],
'test-js-to-wasm/*': [SKIP],
}], # variant == turboprop
##############################################################################
['no_i18n == True', {
'test-regexp/UnicodePropertyEscapeCodeSize': [SKIP],
}], # no_i18n == True
################################################################################
['variant == stress_snapshot', {
'*': [SKIP], # only relevant for mjsunit tests.
}],
################################################################################
['variant == nci or variant == nci_as_midtier', {
# Optimizes and deopts differently than TurboFan.
'test-api/FastApiCalls': [SKIP],
'test-cpu-profiler/Deopt*': [SKIP],
'test-cpu-profiler/DetailedSourcePositionAPI_Inlining': [SKIP],
'test-cpu-profiler/DetailedSourcePositionAPI': [SKIP],
'test-heap/CellsInOptimizedCodeAreWeak': [SKIP],
'test-heap/EnsureAllocationSiteDependentCodesProcessed': [SKIP],
'test-heap/NewSpaceObjectsInOptimizedCode': [SKIP],
'test-heap/ObjectsInEagerlyDeoptimizedCodeAreWeak': [SKIP],
'test-heap/ObjectsInOptimizedCodeAreWeak': [SKIP],
'test-heap/OptimizedPretenuring*': [SKIP],
'test-heap-profiler/SamplingHeapProfilerPretenuredInlineAllocations': [SKIP],
'test-log/LogAll': [SKIP],
# NCI code currently does not use the feedback vector's optimized code cache.
'test-compiler/OptimizedCodeSharing1': [SKIP],
}], # variant == nci or variant == nci_as_midtier
]