Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 483814a0b640f2817d12c0806d131d597e9daef3
https://github.com/WebKit/WebKit/commit/483814a0b640f2817d12c0806d131d597e9daef3
Author: Yusuke Suzuki <[email protected]>
Date: 2025-11-03 (Mon, 03 Nov 2025)
Changed paths:
M Source/JavaScriptCore/llint/InPlaceInterpreter.asm
M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
M Source/JavaScriptCore/wasm/WasmBaselineData.h
M Source/JavaScriptCore/wasm/WasmCallee.cpp
M Source/JavaScriptCore/wasm/WasmCallee.h
M Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp
M Source/JavaScriptCore/wasm/WasmCalleeGroup.h
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp
M Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h
M Source/JavaScriptCore/wasm/WasmInliningDecision.cpp
M Source/JavaScriptCore/wasm/WasmMergedProfile.cpp
M Source/JavaScriptCore/wasm/WasmMergedProfile.h
M Source/JavaScriptCore/wasm/WasmModule.cpp
Log Message:
-----------
[JSC] Collect execution count in Wasm::BaselineData
https://bugs.webkit.org/show_bug.cgi?id=301886
rdar://163966362
Reviewed by Yijia Huang.
We were using Callee's execution counter to collect total execution
count of the function in the inlining decision. But this is too fragile
and unstable as BBQCallee can go away. And we found some cases these
data is missing since OMG for that callee is already compiled and
installed. Let's collect it in Wasm::BaselineData, this is much more
consistent since the other CallProfile data is also obtained from
Wasm::BaselineData.
* Source/JavaScriptCore/llint/InPlaceInterpreter.asm:
* Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
(JSC::Wasm::BBQJITImpl::BBQJIT::emitIncrementCallProfileCount):
(JSC::Wasm::BBQJITImpl::BBQJIT::addTopLevel):
(JSC::Wasm::BBQJITImpl::BBQJIT::addLoopOSREntrypoint):
* Source/JavaScriptCore/wasm/WasmBaselineData.h:
* Source/JavaScriptCore/wasm/WasmCallee.cpp:
(JSC::Wasm::IPIntCallee::needsProfiling const): Deleted.
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp:
(JSC::Wasm::CalleeGroup::tryGetBBQCallee): Deleted.
* Source/JavaScriptCore/wasm/WasmCalleeGroup.h:
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.cpp:
(JSC::IPInt::WASM_IPINT_EXTERN_CPP_DECL):
* Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h:
* Source/JavaScriptCore/wasm/WasmInliningDecision.cpp:
(JSC::Wasm::InliningNode::inlineNode):
* Source/JavaScriptCore/wasm/WasmMergedProfile.cpp:
(JSC::Wasm::MergedProfile::MergedProfile):
(JSC::Wasm::MergedProfile::merge):
* Source/JavaScriptCore/wasm/WasmMergedProfile.h:
(JSC::Wasm::MergedProfile::totalCount const):
* Source/JavaScriptCore/wasm/WasmModule.cpp:
(JSC::Wasm::Module::createMergedProfile):
Canonical link: https://commits.webkit.org/302505@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications