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