[webkit-changes] [WebKit/WebKit] 60287e: Wasm tier up replacements should be fetched from t...
Keith Miller
noreply at github.com
Wed Oct 2 13:52:20 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 60287e9d8fbc5cdac94710facb5dad90cf9d642b
https://github.com/WebKit/WebKit/commit/60287e9d8fbc5cdac94710facb5dad90cf9d642b
Author: Keith Miller <keith_miller at apple.com>
Date: 2024-10-02 (Wed, 02 Oct 2024)
Changed paths:
M Source/JavaScriptCore/wasm/WasmBBQPlan.cpp
M Source/JavaScriptCore/wasm/WasmCallee.h
M Source/JavaScriptCore/wasm/WasmCalleeGroup.h
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
M Source/JavaScriptCore/wasm/WasmOMGPlan.cpp
M Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp
M Source/JavaScriptCore/wasm/WasmOperations.cpp
M Source/JavaScriptCore/wasm/WasmSlowPaths.cpp
Log Message:
-----------
Wasm tier up replacements should be fetched from the CalleeGroup
https://bugs.webkit.org/show_bug.cgi?id=280760
rdar://137126633
Reviewed by David Degazio.
Right now replacement callees are store in each lower tier Callee.
1) This uses extra space on each Callee
2) It makes destroying old BBQ code harder since there could be interpreter callees retaining BBQ callees.
3) It shouldn't be a performance regression to get the replacement from the callee group since most callsites
should update on their own when we repatch them.
The only Wasm::Callee that still retains its tier up callee is BBQCallee -> OSREntryCallee. That's because
the OSREntryCallee is *not* retained by the CalleeGroup.
Long term, if we start releasing interpreter callees, we could resume having each Callee retain a replacement.
That way, as each Callee gets destroyed it can register the tier up callee for destruction too.
* Source/JavaScriptCore/wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::work):
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmCalleeGroup.h:
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::jitCompileAndSetHeuristics):
(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):
* Source/JavaScriptCore/wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
* Source/JavaScriptCore/wasm/WasmOSREntryPlan.cpp:
(JSC::Wasm::OSREntryPlan::work):
* Source/JavaScriptCore/wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):
* Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::jitCompileSIMDFunction):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
Canonical link: https://commits.webkit.org/284575@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list