[webkit-changes] [WebKit/WebKit] a11ede: Increase WASM SIMD test coverage.

Justin Michaud noreply at github.com
Thu Dec 15 21:07:04 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a11ede1047e4c83f9f3b73a65bd88764616203a4
      https://github.com/WebKit/WebKit/commit/a11ede1047e4c83f9f3b73a65bd88764616203a4
  Author: Justin Michaud <justin_michaud at apple.com>
  Date:   2022-12-15 (Thu, 15 Dec 2022)

  Changed paths:
    M JSTests/wasm/assert.js
    M JSTests/wasm/stress/dont-stack-overflow-in-air.js
    M JSTests/wasm/stress/simd-const-spill.js
    M JSTests/wasm/stress/simd-const.js
    A JSTests/wasm/stress/simd-exception.js
    M JSTests/wasm/stress/simd-kitchen-sink.js
    M JSTests/wasm/stress/simd-load.js
    A JSTests/wasm/stress/simd-osr.js
    M JSTests/wasm/stress/simd-register-allocation.js
    M JSTests/wasm/stress/simd-return-value-alignment.js
    A JSTests/wasm/stress/simd-tiny-loop.js
    M JSTests/wasm/v8/exceptions-simd.js
    M JSTests/wasm/v8/liftoff-simd-params.js
    M JSTests/wasm/v8/multi-value-simd.js
    M JSTests/wasm/v8/regress/regress-10309.js
    M JSTests/wasm/v8/regress/regress-1054466.js
    M JSTests/wasm/v8/regress/regress-1065599.js
    M JSTests/wasm/v8/regress/regress-1070078.js
    M JSTests/wasm/v8/regress/regress-1081030.js
    M JSTests/wasm/v8/regress/regress-10831.js
    M JSTests/wasm/v8/regress/regress-1111522.js
    M JSTests/wasm/v8/regress/regress-1112124.js
    M JSTests/wasm/v8/regress/regress-1116019.js
    M JSTests/wasm/v8/regress/regress-1124885.js
    M JSTests/wasm/v8/regress/regress-1132461.js
    M JSTests/wasm/v8/regress/regress-1161555.js
    M JSTests/wasm/v8/regress/regress-1161654.js
    M JSTests/wasm/v8/regress/regress-1161954.js
    M JSTests/wasm/v8/regress/regress-1165966.js
    M JSTests/wasm/v8/regress/regress-1179182.js
    M JSTests/wasm/v8/regress/regress-1187831.js
    M JSTests/wasm/v8/regress/regress-1188975.js
    M JSTests/wasm/v8/regress/regress-1199662.js
    M JSTests/wasm/v8/regress/regress-1231950.js
    M JSTests/wasm/v8/regress/regress-1242300.js
    M JSTests/wasm/v8/regress/regress-1242689.js
    M JSTests/wasm/v8/regress/regress-1264462.js
    M JSTests/wasm/v8/regress/regress-1271244.js
    M JSTests/wasm/v8/regress/regress-1271456.js
    M JSTests/wasm/v8/regress/regress-1271538.js
    M JSTests/wasm/v8/regress/regress-1282224.js
    M JSTests/wasm/v8/regress/regress-1283042.js
    M JSTests/wasm/v8/regress/regress-1283395.js
    M JSTests/wasm/v8/regress/regress-1284980.js
    M JSTests/wasm/v8/regress/regress-1286253.js
    M JSTests/wasm/v8/regress/regress-1289678.js
    M JSTests/wasm/v8/regress/regress-1290079.js
    M JSTests/wasm/v8/regress/regress-9447.js
    M JSTests/wasm/v8/regress/regress-crbug-1338980.js
    M JSTests/wasm/v8/regress/regress-crbug-1355070.js
    M JSTests/wasm/v8/regress/regress-crbug-1356718.js
    M JSTests/wasm/v8/simd-call.js
    M JSTests/wasm/v8/simd-errors.js
    M JSTests/wasm/v8/simd-globals.js
    M JSTests/wasm/v8/simd-i64x2-mul.js
    M Source/JavaScriptCore/b3/B3Procedure.cpp
    M Source/JavaScriptCore/b3/B3Procedure.h
    M Source/JavaScriptCore/runtime/Options.cpp
    M Source/JavaScriptCore/runtime/OptionsList.h
    M Source/JavaScriptCore/wasm/WasmAirIRGeneratorBase.h
    M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
    M Tools/Scripts/run-jsc-stress-tests

  Log Message:
  -----------
  Increase WASM SIMD test coverage.
https://bugs.webkit.org/show_bug.cgi?id=249357

Reviewed by Yusuke Suzuki.

Increase simd test coverage:

1) Add a new testing mode to force every function to be conservative w.r.t. treating floating point registers as vectors
2) Allow tier-up directly to OMG for SIMD functions
3) Remove extra test options implied when using SIMD. Note that we now assume all functions might use SIMD if the LLInt is disabled.
4) Add new (currently failing) tests: simd-exception.js, simd-osr.js, simd-tiny-loop.js. Note that these all pass in v8.
5) Update dont-stack-overflow-in-air.js. It uses f64 locals, which become 128-bit when the LLInt is disabled. This is a
   real regression introduced by this patch, but this mode is not very important for performance so we force the LLInt to be enabled in this mode.

* JSTests/wasm/assert.js:
* JSTests/wasm/stress/simd-const-spill.js:
* JSTests/wasm/stress/simd-const.js:
* JSTests/wasm/stress/simd-exception.js: Added.
(let.wat.module.import.string_appeared_here.string_appeared_here.tag.e.i32.param.i32.func.test_throw.export.string_appeared_here.param.sz.i32.local.i.i32.local.i.i32.const.0.loop.loop.local.i.i32.const.1.i32.add.local.i.local.i.local.sz.i32.eq.then.throw.e.i32.local.i.local.i.i32.const.1000.i32.lt_s.br_if.loop.func.test_catch.export.string_appeared_here.result.i32.v128.const.i32x4.1337.1337.1337.1337.try.call.test_throw.i32.const.500.catch.e.i32.i32.const.500.i32.ne.then.unreachable.i32x4.extract_lane.3.async test):
* JSTests/wasm/stress/simd-kitchen-sink.js:
* JSTests/wasm/stress/simd-load.js:
* JSTests/wasm/stress/simd-register-allocation.js:
* JSTests/wasm/stress/simd-return-value-alignment.js:
* JSTests/wasm/v8/exceptions-simd.js:
(TestThrowS128Default):
* JSTests/wasm/v8/liftoff-simd-params.js:
* JSTests/wasm/v8/multi-value-simd.js:
* JSTests/wasm/v8/regress/regress-10309.js:
* JSTests/wasm/v8/regress/regress-1054466.js:
* JSTests/wasm/v8/regress/regress-1065599.js:
* JSTests/wasm/v8/regress/regress-1070078.js:
* JSTests/wasm/v8/regress/regress-1081030.js:
* JSTests/wasm/v8/regress/regress-10831.js:
* JSTests/wasm/v8/regress/regress-1111522.js:
* JSTests/wasm/v8/regress/regress-1112124.js:
* JSTests/wasm/v8/regress/regress-1116019.js:
* JSTests/wasm/v8/regress/regress-1124885.js:
* JSTests/wasm/v8/regress/regress-1132461.js:
* JSTests/wasm/v8/regress/regress-1161555.js:
* JSTests/wasm/v8/regress/regress-1161654.js:
* JSTests/wasm/v8/regress/regress-1161954.js:
* JSTests/wasm/v8/regress/regress-1165966.js:
* JSTests/wasm/v8/regress/regress-1179182.js:
* JSTests/wasm/v8/regress/regress-1187831.js:
* JSTests/wasm/v8/regress/regress-1188975.js:
* JSTests/wasm/v8/regress/regress-1199662.js:
* JSTests/wasm/v8/regress/regress-1231950.js:
* JSTests/wasm/v8/regress/regress-1242300.js:
* JSTests/wasm/v8/regress/regress-1242689.js:
* JSTests/wasm/v8/regress/regress-1264462.js:
* JSTests/wasm/v8/regress/regress-1271244.js:
* JSTests/wasm/v8/regress/regress-1271456.js:
* JSTests/wasm/v8/regress/regress-1271538.js:
* JSTests/wasm/v8/regress/regress-1282224.js:
* JSTests/wasm/v8/regress/regress-1283042.js:
* JSTests/wasm/v8/regress/regress-1283395.js:
* JSTests/wasm/v8/regress/regress-1284980.js:
* JSTests/wasm/v8/regress/regress-1286253.js:
* JSTests/wasm/v8/regress/regress-1289678.js:
* JSTests/wasm/v8/regress/regress-1290079.js:
* JSTests/wasm/v8/regress/regress-9447.js:
* JSTests/wasm/v8/regress/regress-crbug-1338980.js:
* JSTests/wasm/v8/regress/regress-crbug-1355070.js:
* JSTests/wasm/v8/regress/regress-crbug-1356718.js:
* JSTests/wasm/v8/simd-call.js:
* JSTests/wasm/v8/simd-errors.js:
* JSTests/wasm/v8/simd-globals.js:
* JSTests/wasm/v8/simd-i64x2-mul.js:
* Source/JavaScriptCore/b3/B3Procedure.h:
(JSC::B3::Procedure::usesSIMD const):
* Source/JavaScriptCore/runtime/Options.cpp:
(JSC::Options::notifyOptionsChanged):
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::jitCompileSIMDFunction):
* Tools/Scripts/run-jsc-stress-tests:

Canonical link: https://commits.webkit.org/257974@main




More information about the webkit-changes mailing list