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

Reply via email to