Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fb512fb75f60bca15b6106b73a55f4a60633fbd9
https://github.com/WebKit/WebKit/commit/fb512fb75f60bca15b6106b73a55f4a60633fbd9
Author: Sosuke Suzuki <[email protected]>
Date: 2026-09-29 (Tue, 29 Sep 2026)
Changed paths:
M Source/JavaScriptCore/ftl/FTLJITCode.cpp
M Source/JavaScriptCore/ftl/FTLJITCode.h
M Source/JavaScriptCore/ftl/FTLLink.cpp
M Source/JavaScriptCore/ftl/FTLOSRExit.cpp
M Source/JavaScriptCore/ftl/FTLOSRExit.h
M Source/JavaScriptCore/ftl/FTLState.h
Log Message:
-----------
[JSC] Store the `ValueReps` of FTL OSR exits in the exit stream
https://bugs.webkit.org/show_bug.cgi?id=325463
Reviewed by Yusuke Suzuki.
321991@main stored FTL OSR exits as an FTL::OSRExitStream, but where B3
placed the exit arguments of the exits stayed in another byte stream of the
JITCode, and each exit in the stream had the offset of its ValueReps there.
This patch stores the ValueReps of an exit right after the exit in the
stream, so the offsets and the other byte stream are gone.
One JetStream3 run, 167k exits:
Before After
Total 4.14 MB 3.96 MB
Per exit 24.8 B 23.8 B
* Source/JavaScriptCore/ftl/FTLJITCode.cpp:
(JSC::FTL::JITCode::shrinkToFit):
(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):
* Source/JavaScriptCore/ftl/FTLJITCode.h:
* Source/JavaScriptCore/ftl/FTLLink.cpp:
(JSC::FTL::link):
* Source/JavaScriptCore/ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::valueReps const):
(JSC::FTL::OSRExitStream::OSRExitStream):
(JSC::FTL::OSRExitStream::decode const):
(JSC::FTL::OSRExitStream::valueReps const):
(JSC::FTL::OSRExitValueReps::append): Deleted.
(JSC::FTL::OSRExitValueReps::decode const): Deleted.
* Source/JavaScriptCore/ftl/FTLOSRExit.h:
(JSC::FTL::OSRExitValueReps::shrinkToFit): Deleted.
* Source/JavaScriptCore/ftl/FTLState.h:
Canonical link: https://commits.webkit.org/322138@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications