Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9d03f483401c594b5e54d32a80dd1993f4346100
      
https://github.com/WebKit/WebKit/commit/9d03f483401c594b5e54d32a80dd1993f4346100
  Author: Sosuke Suzuki <[email protected]>
  Date:   2026-08-19 (Wed, 19 Aug 2026)

  Changed paths:
    M Source/JavaScriptCore/bytecode/CallLinkInfo.h
    M Source/JavaScriptCore/bytecode/CallLinkStatus.cpp
    M Source/JavaScriptCore/jit/ThunkGenerators.cpp
    M Source/JavaScriptCore/llint/LowLevelInterpreter.asm

  Log Message:
  -----------
  [JSC] Remove `CallLinkInfo::m_slowPathCount`
https://bugs.webkit.org/show_bug.cgi?id=322096

Reviewed by Yusuke Suzuki.

m_slowPathCount is only incremented by the virtual call thunks, and the only
way for a call site to reach those thunks is setVirtualCall(), which also sets
m_clearedByVirtual. CallLinkStatus::computeFromCallLinkInfo bails out with
takesSlowPath() for any CallLinkInfo with that bit set before it ever looks at
the count, so the two remaining reads always observe zero. The other user of
the thunks, op_call_direct_eval's fallback call, is never consulted through
CallLinkStatus at all.

Drop the field and the increments in the LLInt and JIT virtual thunks, and
fold the two reads in CallLinkStatus into the zero they always produced.

* Source/JavaScriptCore/bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::offsetOfSlowPathCount): Deleted.
(JSC::CallLinkInfo::slowPathCount): Deleted.
* Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromCallLinkInfo):
* Source/JavaScriptCore/jit/ThunkGenerators.cpp:
(JSC::virtualThunkFor):
* Source/JavaScriptCore/llint/LowLevelInterpreter.asm:

Canonical link: https://commits.webkit.org/319494@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to