Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2725a2a8434afdc0c01107f0396e7b9e7c948abc https://github.com/WebKit/WebKit/commit/2725a2a8434afdc0c01107f0396e7b9e7c948abc Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2025-02-04 (Tue, 04 Feb 2025)
Changed paths: A JSTests/slowMicrobenchmarks/gcc-loops-wasm-load.js A JSTests/slowMicrobenchmarks/quicksort-wasm-load.js A JSTests/slowMicrobenchmarks/richards-wasm-load.js A JSTests/slowMicrobenchmarks/tsf-wasm-load.js M Source/JavaScriptCore/runtime/OptionsList.h M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp M Source/JavaScriptCore/wasm/WasmBBQPlan.h M Source/JavaScriptCore/wasm/WasmEntryPlan.cpp M Source/JavaScriptCore/wasm/WasmEntryPlan.h M Source/JavaScriptCore/wasm/WasmFunctionCodeBlockGenerator.cpp M Source/JavaScriptCore/wasm/WasmFunctionCodeBlockGenerator.h M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp M Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h M Source/JavaScriptCore/wasm/WasmIPIntPlan.cpp M Source/JavaScriptCore/wasm/WasmIPIntPlan.h M Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp M Source/JavaScriptCore/wasm/WasmLLIntPlan.h M Source/JavaScriptCore/wasm/WasmModuleInformation.h M Source/JavaScriptCore/wasm/WasmOMGPlan.cpp M Source/JavaScriptCore/wasm/WasmOMGPlan.h M Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp M Source/JavaScriptCore/wasm/WasmOSREntryPlan.h M Source/JavaScriptCore/wasm/WasmPlan.h M Source/JavaScriptCore/wasm/WasmStreamingParser.cpp M Source/JavaScriptCore/wasm/WasmStreamingParser.h M Source/JavaScriptCore/wasm/WasmStreamingPlan.cpp M Source/JavaScriptCore/wasm/WasmStreamingPlan.h M Source/JavaScriptCore/wasm/WasmWorklist.cpp Log Message: ----------- [JSC] More sophisticated wasm worklist distribution https://bugs.webkit.org/show_bug.cgi?id=286986 rdar://144136820 Reviewed by Keith Miller and Yijia Huang. This patch tweaks our wasm worklist distribution code for non streaming wasm compilation. 1. We check each function size and isolate super huge function in a different loop of wasm compilation so that we can distribute outlier sized function separately from the rest, which makes distribution of compilation task more uniformly. 2. We compute total size of functions and change partial wasm byte size based on that. For very small wasm functions, large threshold will reduce use of threads of the system. But for enough sized wasm binary, we should bulk compile many functions to reduce rescheduling of wasm plan cost. 3. We also remove unnecessary locking in WasmIPIntPlan / WasmLLIntPlan. ToT Patched richards-wasm-load 569.6911+-26.6883 ^ 385.5147+-5.0021 ^ definitely 1.4777x faster quicksort-wasm-load 508.5815+-0.6967 ^ 381.4527+-3.4712 ^ definitely 1.3333x faster gcc-loops-wasm-load 263.1294+-5.8862 ? 264.7556+-2.9799 ? hashset-wasm-load 402.5893+-2.0566 ^ 381.7596+-0.8357 ^ definitely 1.0546x faster tsf-wasm-load 351.2520+-5.2388 ^ 303.8165+-1.9450 ^ definitely 1.1561x faster * JSTests/slowMicrobenchmarks/gcc-loops-wasm-load.js: Added. * JSTests/slowMicrobenchmarks/quicksort-wasm-load.js: Added. * JSTests/slowMicrobenchmarks/richards-wasm-load.js: Added. * JSTests/slowMicrobenchmarks/tsf-wasm-load.js: Added. * Source/JavaScriptCore/runtime/OptionsList.h: * Source/JavaScriptCore/wasm/WasmEntryPlan.cpp: (JSC::Wasm::EntryPlan::compileFunctions): * Source/JavaScriptCore/wasm/WasmFunctionCodeBlockGenerator.cpp: (JSC::Wasm::FunctionCodeBlockGenerator::setTailCall): * Source/JavaScriptCore/wasm/WasmFunctionCodeBlockGenerator.h: (JSC::Wasm::FunctionCodeBlockGenerator::hasTailCallSuccessors const): * Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.cpp: (JSC::Wasm::FunctionIPIntMetadataGenerator::setTailCall): * Source/JavaScriptCore/wasm/WasmFunctionIPIntMetadataGenerator.h: (JSC::Wasm::FunctionIPIntMetadataGenerator::hasTailCallSuccessors const): * Source/JavaScriptCore/wasm/WasmIPIntPlan.cpp: (JSC::Wasm::IPIntPlan::compileFunction): * Source/JavaScriptCore/wasm/WasmIPIntPlan.h: * Source/JavaScriptCore/wasm/WasmLLIntPlan.cpp: (JSC::Wasm::LLIntPlan::compileFunction): * Source/JavaScriptCore/wasm/WasmLLIntPlan.h: * Source/JavaScriptCore/wasm/WasmModuleInformation.h: * Source/JavaScriptCore/wasm/WasmStreamingParser.cpp: (JSC::Wasm::StreamingParser::parseFunctionPayload): * Source/JavaScriptCore/wasm/WasmStreamingParser.h: Canonical link: https://commits.webkit.org/289816@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