[webkit-changes] [WebKit/WebKit] 4ce45c: Remove uses of Options::useWebAssemblySIMD.
Justin Michaud
noreply at github.com
Fri Dec 9 09:01:21 PST 2022
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4ce45cf323661a55744011f98077db15d65380fb
https://github.com/WebKit/WebKit/commit/4ce45cf323661a55744011f98077db15d65380fb
Author: Justin Michaud <justin_michaud at apple.com>
Date: 2022-12-09 (Fri, 09 Dec 2022)
Changed paths:
M JSTests/wasm/stress/simd-const-spill.js
M JSTests/wasm/stress/simd-const.js
M JSTests/wasm/stress/simd-kitchen-sink.js
M JSTests/wasm/stress/simd-load.js
M JSTests/wasm/stress/simd-register-allocation.js
M JSTests/wasm/stress/simd-return-value-alignment.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/B3PatchpointSpecial.cpp
M Source/JavaScriptCore/b3/B3Procedure.h
M Source/JavaScriptCore/b3/B3ValueRep.cpp
M Source/JavaScriptCore/b3/B3ValueRep.h
M Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp
M Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp
M Source/JavaScriptCore/b3/air/AirCCallSpecial.cpp
M Source/JavaScriptCore/b3/air/AirCCallSpecial.h
M Source/JavaScriptCore/b3/air/AirCode.cpp
M Source/JavaScriptCore/b3/air/AirCode.h
M Source/JavaScriptCore/b3/air/AirEmitShuffle.cpp
M Source/JavaScriptCore/b3/air/AirLowerAfterRegAlloc.cpp
M Source/JavaScriptCore/b3/air/AirRegLiveness.cpp
M Source/JavaScriptCore/b3/air/AirTmpWidth.cpp
M Source/JavaScriptCore/ftl/FTLJITCode.cpp
M Source/JavaScriptCore/jit/ScratchRegisterAllocator.cpp
M Source/JavaScriptCore/runtime/Options.cpp
M Source/JavaScriptCore/runtime/OptionsList.h
M Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp
M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
M Source/JavaScriptCore/wasm/WasmThunks.cpp
M Source/JavaScriptCore/wasm/WasmThunks.h
M Tools/Scripts/run-jsc-stress-tests
Log Message:
-----------
Remove uses of Options::useWebAssemblySIMD.
https://bugs.webkit.org/show_bug.cgi?id=248917
Reviewed by Yusuke Suzuki.
This patch removes useWebAssemblySIMD everywhere except for when we are
parsing WASM functions.
Using vectors throughout our code causes a 7% JS2 regression, so we need
to gate conservative vector behaviour behind a flag. Previously, this was
the global feature flag. Now, we check per-function if SIMD instructions
are used.
We also enable the B3 JIT, since SIMD functions already should not be
tiering up.
A subsequent patch should hopefully turn on this option by default without
regressing non-simd code. In preparation for that, we also ensure that we
are not reducing test coverage by enabling SIMD.
* JSTests/wasm/stress/simd-const-spill.js:
* JSTests/wasm/stress/simd-const.js:
* 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:
* 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/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::forEachArg):
* Source/JavaScriptCore/b3/B3Procedure.h:
(JSC::B3::Procedure::setIsSIMD):
(JSC::B3::Procedure::isSIMD const):
* Source/JavaScriptCore/b3/B3ValueRep.cpp:
(JSC::B3::ValueRep::addUsedRegistersTo const):
(JSC::B3::ValueRep::usedRegisters const):
* Source/JavaScriptCore/b3/B3ValueRep.h:
(JSC::B3::ValueRep::usedRegisters):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::flush):
(JSC::B3::Air::GenerateAndAllocateRegisters::alloc):
(JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration):
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
* Source/JavaScriptCore/b3/air/AirCCallSpecial.cpp:
(JSC::B3::Air::CCallSpecial::CCallSpecial):
(JSC::B3::Air::CCallSpecial::forEachArg):
* Source/JavaScriptCore/b3/air/AirCCallSpecial.h:
* Source/JavaScriptCore/b3/air/AirCode.cpp:
(JSC::B3::Air::Code::cCallSpecial):
(JSC::B3::Air::Code::isSIMD const):
* Source/JavaScriptCore/b3/air/AirCode.h:
* Source/JavaScriptCore/b3/air/AirEmitShuffle.cpp:
(JSC::B3::Air::emitShuffle):
* Source/JavaScriptCore/b3/air/AirLowerAfterRegAlloc.cpp:
(JSC::B3::Air::lowerAfterRegAlloc):
* Source/JavaScriptCore/b3/air/AirRegLiveness.cpp:
(JSC::B3::Air::RegLiveness::LocalCalcForUnifiedTmpLiveness::LocalCalcForUnifiedTmpLiveness):
(JSC::B3::Air::RegLiveness::LocalCalcForUnifiedTmpLiveness::execute):
* Source/JavaScriptCore/b3/air/AirTmpWidth.cpp:
(JSC::B3::Air::TmpWidth::recompute):
* Source/JavaScriptCore/ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
* Source/JavaScriptCore/jit/ScratchRegisterAllocator.cpp:
(JSC::ScratchRegisterAllocator::allocateScratch):
(JSC::ScratchRegisterAllocator::preserveReusedRegistersByPushing):
(JSC::ScratchRegisterAllocator::restoreReusedRegistersByPopping):
* Source/JavaScriptCore/runtime/Options.cpp:
(JSC::Options::notifyOptionsChanged):
* Source/JavaScriptCore/runtime/OptionsList.h:
* Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitCatchImpl):
(JSC::Wasm::AirIRGenerator::addThrow):
(JSC::Wasm::AirIRGenerator::addRethrow):
(JSC::Wasm::AirIRGenerator::emitCallPatchpoint):
(JSC::Wasm::parseAndCompileAir):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::parseAndCompileB3):
* Source/JavaScriptCore/wasm/WasmThunks.cpp:
(JSC::Wasm::triggerOMGEntryTierUpThunkGeneratorImpl):
(JSC::Wasm::triggerOMGEntryTierUpThunkGeneratorSIMD):
(JSC::Wasm::triggerOMGEntryTierUpThunkGeneratorNoSIMD):
(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator): Deleted.
* Source/JavaScriptCore/wasm/WasmThunks.h:
(JSC::Wasm::triggerOMGEntryTierUpThunkGenerator):
* Tools/Scripts/run-jsc-stress-tests:
Canonical link: https://commits.webkit.org/257632@main
More information about the webkit-changes
mailing list