[webkit-changes] [WebKit/WebKit] 70ed41: [JSC] Optimize C++ -> JS calls more by removing un...
Yusuke Suzuki
noreply at github.com
Tue Nov 21 14:38:11 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 70ed411a86beb021b7cfd8a152196da979efeef4
https://github.com/WebKit/WebKit/commit/70ed411a86beb021b7cfd8a152196da979efeef4
Author: Yusuke Suzuki <ysuzuki at apple.com>
Date: 2023-11-21 (Tue, 21 Nov 2023)
Changed paths:
M Source/JavaScriptCore/interpreter/CallFrame.cpp
M Source/JavaScriptCore/interpreter/VMEntryRecord.h
M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
Log Message:
-----------
[JSC] Optimize C++ -> JS calls more by removing unnecessary callee storing to VMEntryRecord
https://bugs.webkit.org/show_bug.cgi?id=265178
rdar://118672952
Reviewed by Ross Kirsling.
This remoes unnecessary callee storing in VMEntryRecord. We are using it only in one place, and it is just getting JSGlobalObject
when there is no JS CallFrame (then, instead, it is querying to VMEntryRecord). In this case, we can just use VMEntryScope's
JSGlobalObject, which is also created before VMEntryRecord is instantiated. This removes some more unnecessary code in LowLevelInterpreter's
doVMEntry.
cpp-to-js-cached-call 12.8405+-0.0760 ^ 12.5615+-0.0582 ^ definitely 1.0222x faster
* Source/JavaScriptCore/interpreter/CallFrame.cpp:
(JSC::CallFrame::convertToStackOverflowFrame):
* Source/JavaScriptCore/interpreter/VMEntryRecord.h:
(JSC::VMEntryRecord::callee const): Deleted.
* Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:
* Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:
Canonical link: https://commits.webkit.org/271027@main
More information about the webkit-changes
mailing list