Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 8a87c94d18a14c56c0f7543e2fbfe1244d2c0692 https://github.com/WebKit/WebKit/commit/8a87c94d18a14c56c0f7543e2fbfe1244d2c0692 Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2025-08-18 (Mon, 18 Aug 2025)
Changed paths: M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp M Source/JavaScriptCore/wasm/WasmBBQJIT.h M Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp M Source/JavaScriptCore/wasm/WasmBBQJIT32_64.h M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp M Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp M Source/JavaScriptCore/wasm/WasmFunctionParser.h M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp M Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp Log Message: ----------- [JSC] Propagate wasm types from WasmFunctionParser https://bugs.webkit.org/show_bug.cgi?id=297569 rdar://158644933 Reviewed by Keith Miller. This patch propagates Wasm types more to each backend from WasmFunctionParser. The purpose is mainly using isNullable information from the type so that we can avoid repeated unnecessary null checks which is already guaranteed via types. * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp: (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayCopy): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayInitElem): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayInitData): (JSC::Wasm::BBQJITImpl::BBQJIT::addI32Popcnt): (JSC::Wasm::BBQJITImpl::BBQJIT::addI64Popcnt): (JSC::Wasm::BBQJITImpl::BBQJIT::addThrow): (JSC::Wasm::BBQJITImpl::BBQJIT::saveValuesAcrossCallAndPassArguments): (JSC::Wasm::BBQJITImpl::BBQJIT::emitTailCall): (JSC::Wasm::BBQJITImpl::BBQJIT::emitIndirectTailCall): * Source/JavaScriptCore/wasm/WasmBBQJIT.h: * Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp: (JSC::Wasm::BBQJITImpl::BBQJIT::truncInBounds): (JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetS): (JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetU): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayGet): (JSC::Wasm::BBQJITImpl::BBQJIT::addArraySet): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayLen): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayFill): (JSC::Wasm::BBQJITImpl::BBQJIT::addStructGet): (JSC::Wasm::BBQJITImpl::BBQJIT::addStructSet): (JSC::Wasm::BBQJITImpl::BBQJIT::addRefCast): (JSC::Wasm::BBQJITImpl::BBQJIT::addRefTest): (JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertSI64): (JSC::Wasm::BBQJITImpl::BBQJIT::addF32ConvertUI64): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertSI64): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64ConvertUI64): (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Floor): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Floor): (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Ceil): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Ceil): (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Nearest): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Nearest): (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Trunc): (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Trunc): * Source/JavaScriptCore/wasm/WasmBBQJIT32_64.h: (JSC::Wasm::BBQJITImpl::BBQJIT::emitModOrDiv): * Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp: (JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetS): (JSC::Wasm::BBQJITImpl::BBQJIT::addI31GetU): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayGet): (JSC::Wasm::BBQJITImpl::BBQJIT::addArraySet): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayLen): (JSC::Wasm::BBQJITImpl::BBQJIT::addArrayFill): (JSC::Wasm::BBQJITImpl::BBQJIT::addStructGet): (JSC::Wasm::BBQJITImpl::BBQJIT::addStructSet): (JSC::Wasm::BBQJITImpl::BBQJIT::emitRefTestOrCast): (JSC::Wasm::BBQJITImpl::BBQJIT::addRefCast): (JSC::Wasm::BBQJITImpl::BBQJIT::addRefTest): * Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp: (JSC::Wasm::ConstExprGenerator::addArrayNewFixed): (JSC::Wasm::ConstExprGenerator::addStructNew): * Source/JavaScriptCore/wasm/WasmFunctionParser.h: * Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp: * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp: (JSC::Wasm::OMGIRGenerator::addRefAsNonNull): (JSC::Wasm::OMGIRGenerator::addI31GetS): (JSC::Wasm::OMGIRGenerator::addI31GetU): (JSC::Wasm::OMGIRGenerator::pushArrayNewFromSegment): (JSC::Wasm::OMGIRGenerator::addArrayGet): (JSC::Wasm::OMGIRGenerator::emitNullCheck): (JSC::Wasm::OMGIRGenerator::addArraySet): (JSC::Wasm::OMGIRGenerator::addArrayLen): (JSC::Wasm::OMGIRGenerator::addArrayFill): (JSC::Wasm::OMGIRGenerator::addArrayCopy): (JSC::Wasm::OMGIRGenerator::addArrayInitElem): (JSC::Wasm::OMGIRGenerator::addArrayInitData): (JSC::Wasm::OMGIRGenerator::addStructGet): (JSC::Wasm::OMGIRGenerator::addStructSet): (JSC::Wasm::OMGIRGenerator::addRefTest): (JSC::Wasm::OMGIRGenerator::addRefCast): (JSC::Wasm::OMGIRGenerator::emitRefTestOrCast): (JSC::Wasm::OMGIRGenerator::allocateWasmGCArrayUninitialized): (JSC::Wasm::OMGIRGenerator::allocateWasmGCStructUninitialized): (JSC::Wasm::OMGIRGenerator::addThrowRef): (JSC::Wasm::OMGIRGenerator::addBranchCast): (JSC::Wasm::OMGIRGenerator::emitInlineDirectCall): (JSC::Wasm::OMGIRGenerator::addCallRef): (JSC::Wasm::OMGIRGenerator::emitArrayNullCheck): Deleted. * Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp: (JSC::Wasm::OMGIRGenerator::emitInlineDirectCall): Canonical link: https://commits.webkit.org/298875@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes