[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