Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 67685bf451f9053a95ae95b3122e368b3f6e4f33
https://github.com/WebKit/WebKit/commit/67685bf451f9053a95ae95b3122e368b3f6e4f33
Author: Yusuke Suzuki <[email protected]>
Date: 2025-07-29 (Tue, 29 Jul 2025)
Changed paths:
M Source/JavaScriptCore/bytecode/CodeBlock.cpp
M Source/JavaScriptCore/jit/BaselineJITCode.h
M Source/JavaScriptCore/runtime/OptionsList.h
Log Message:
-----------
[JSC] Tier up when liveness / fullness profile rate does not change
https://bugs.webkit.org/show_bug.cgi?id=296607
rdar://156976025
Reviewed by Mark Lam and Keith Miller.
If a CodeBlock size is large enough, then there is a chance that some
part of code is just a dead code. This can happen in a framework code
since it is crafted as a generic function. In this case, we track
whether the liveness / fullness rate changes from the previous sampling
time, and if it is not changed, we say that we are reaching to the
plateau and we do not expect that we will get more information with
retrying. Thus we will start compiling it in DFG. This patch records
the previous liveness / fullness rate and detect it is not changed.
And then we tier up early based on that information.
* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::shouldOptimizeNowFromBaseline):
* Source/JavaScriptCore/jit/BaselineJITCode.h:
(JSC::BaselineJITCode::livenessRate const):
(JSC::BaselineJITCode::setLivenessRate):
(JSC::BaselineJITCode::fullnessRate const):
(JSC::BaselineJITCode::setFullnessRate):
* Source/JavaScriptCore/runtime/OptionsList.h:
Canonical link: https://commits.webkit.org/298008@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes