Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 46c40d49e8caf1419e909ba6bcebc2c8c68b0738 https://github.com/WebKit/WebKit/commit/46c40d49e8caf1419e909ba6bcebc2c8c68b0738 Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2024-05-24 (Fri, 24 May 2024)
Changed paths: M Source/JavaScriptCore/heap/Heap.cpp M Source/JavaScriptCore/jit/JITInlines.h M Source/JavaScriptCore/wasm/WasmCallee.cpp M Source/JavaScriptCore/wasm/WasmCallee.h M Source/JavaScriptCore/wasm/WasmEntryPlan.cpp M Source/JavaScriptCore/wasm/WasmEntryPlan.h M Source/JavaScriptCore/wasm/WasmInstance.cpp M Source/JavaScriptCore/wasm/WasmInstance.h M Source/JavaScriptCore/wasm/WasmModule.cpp M Source/JavaScriptCore/wasm/WasmModule.h M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp M Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h M Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp M Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h M Source/JavaScriptCore/wasm/js/WasmToJS.cpp M Source/JavaScriptCore/wasm/js/WasmToJS.h Log Message: ----------- [JSC] Use DataOnlyCallLinkInfo in WasmToJS thunk https://bugs.webkit.org/show_bug.cgi?id=274636 rdar://128663255 Reviewed by Justin Michaud. This is preparation for offloading thunk generation from the main thread to the wasm compiler threads. Now, we introduced DataOnlyCallLinkInfo. So we can use it in WasmToJS thunk. Previously, we were using CallLinkInfo here, and since this is tied to each executing thread, we needed to generate code with CallLinkInfo for each WasmModule instance in each thread (if there are multiple workers, they need to generate these thunks with linked CallLinkInfo to each worker VM). But now, DataOnlyCallLinkInfo can decopule the code from the IC, so now the patch makes the code independent from VM and IC. We generate thunk in WasmEntryPlan, and we instantiate DataOnlyCallLinkInfo instances on Wasm::Instance. This design allows us to generate these thunks in wasm compiler thread in the future, which can accelerate wasm startup time. * Source/JavaScriptCore/heap/Heap.cpp: (JSC::Heap::finalizeUnconditionalFinalizers): (JSC::Heap::deleteAllCodeBlocks): * Source/JavaScriptCore/jit/JITInlines.h: (JSC::JIT::appendCallWithExceptionCheck): * Source/JavaScriptCore/wasm/WasmCallee.cpp: (JSC::Wasm::WasmToJSCallee::singleton): * Source/JavaScriptCore/wasm/WasmCallee.h: * Source/JavaScriptCore/wasm/WasmEntryPlan.cpp: (JSC::Wasm::EntryPlan::prepare): (JSC::Wasm::EntryPlan::generateWasmToWasmStubs): (JSC::Wasm::EntryPlan::generateWasmToJSStubs): * Source/JavaScriptCore/wasm/WasmEntryPlan.h: (JSC::Wasm::EntryPlan::takeWasmToJSExitStubs): * Source/JavaScriptCore/wasm/WasmInstance.cpp: (JSC::Wasm::Instance::Instance): (JSC::Wasm::Instance::~Instance): * Source/JavaScriptCore/wasm/WasmInstance.h: (JSC::Wasm::Instance::ImportFunctionInfo::offsetOfCallLinkInfo): (JSC::Wasm::Instance::offsetOfCallLinkInfo): * Source/JavaScriptCore/wasm/WasmModule.cpp: (JSC::Wasm::Module::Module): * Source/JavaScriptCore/wasm/WasmModule.h: (JSC::Wasm::Module::importFunctionStub): (JSC::Wasm::Module::wasmToJSCallee): Deleted. * Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp: (JSC::JSWebAssemblyInstance::~JSWebAssemblyInstance): (JSC::JSWebAssemblyInstance::finalizeCreation): (JSC::JSWebAssemblyInstance::clearJSCallICs): (JSC::JSWebAssemblyInstance::finalizeUnconditionally): * Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h: * Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp: (JSC::JSWebAssemblyModule::createStub): (JSC::JSWebAssemblyModule::clearJSCallICs): Deleted. (JSC::JSWebAssemblyModule::finalizeUnconditionally): Deleted. (JSC::JSWebAssemblyModule::generateWasmToJSStubs): Deleted. * Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h: * Source/JavaScriptCore/wasm/js/WasmToJS.cpp: (JSC::Wasm::wasmToJS): (JSC::Wasm::emitThrowWasmToJSException): * Source/JavaScriptCore/wasm/js/WasmToJS.h: Canonical link: https://commits.webkit.org/279275@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