You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit fb512fb
Browse filesBrowse the repository at this point in the historyBrowse files
[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
0 commit comments