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

Reply via email to