Skip to content

[JSC] Allow quick DFG/FTL tier-up recovery after reinstall#60373

Merged
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
hyjorc1:eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool
Mar 13, 2026
Merged

[JSC] Allow quick DFG/FTL tier-up recovery after reinstall#60373
webkit-commit-queue merged 1 commit intoWebKit:mainfrom
hyjorc1:eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool

Conversation

@hyjorc1
Copy link
Copy Markdown
Contributor

@hyjorc1 hyjorc1 commented Mar 11, 2026

f92b82d

[JSC] Allow quick DFG/FTL tier-up recovery after reinstall
https://bugs.webkit.org/show_bug.cgi?id=309687
rdar://172290040

Reviewed by Dan Hecht.

Quick tier-up reduces the optimization threshold for functions that have
previously run JIT code successfully, letting them re-tier faster after
jettison.

Previously didInstallDFGCode() and didInstallFTLCode() were one-shot:
once the flag was cleared by a jettison, subsequent reinstalls could not
recover it. This patch allows recovery on reinstall.

A jettison is a profiling event — the speculation failure reveals type
information that baseline JIT captures, and a re-compile against those
richer profiles is likely more stable. Penalizing it permanently was
counterproductive.

Canonical link: https://commits.webkit.org/309230@main

f05e49d

Misc iOS, visionOS, tvOS & watchOS macOS Linux Windows Apple Internal
✅ 🧪 style 🛠 ios 🛠 mac 🛠 wpe 🛠 win ⏳ 🛠 ios-apple
🛠 ios-sim 🛠 mac-AS-debug 🧪 wpe-wk2 🧪 win-tests ⏳ 🛠 mac-apple
✅ 🧪 webkitperl 🧪 ios-wk2 🧪 api-mac 🧪 api-wpe ⏳ 🛠 vision-apple
🧪 ios-wk2-wpt 🧪 api-mac-debug 🛠 gtk3-libwebrtc
✅ 🛠 🧪 jsc 🧪 api-ios 🧪 mac-wk1 🛠 gtk
✅ 🛠 🧪 jsc-debug-arm64 🛠 ios-safer-cpp 🧪 mac-wk2 🧪 gtk-wk2
🛠 vision 🧪 mac-AS-debug-wk2 🧪 api-gtk
✅ 🛠 🧪 merge 🛠 vision-sim 🧪 mac-wk2-stress 🛠 playstation
⏳ 🧪 vision-wk2 🧪 mac-intel-wk2 🛠 jsc-armv7
🛠 tv 🛠 mac-safer-cpp 🧪 jsc-armv7-tests
🛠 tv-sim
🛠 watch
🛠 watch-sim

@hyjorc1 hyjorc1 requested a review from a team as a code owner March 11, 2026 17:02
@hyjorc1 hyjorc1 self-assigned this Mar 11, 2026
@hyjorc1 hyjorc1 added the New Bugs Unclassified bugs are placed in this component until the correct component can be determined. label Mar 11, 2026
Copy link
Copy Markdown
Contributor

@dhecht dhecht left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

r=me with nits

@hyjorc1 hyjorc1 force-pushed the eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool branch from e811034 to fd31306 Compare March 11, 2026 17:32
@hyjorc1 hyjorc1 added safe-merge-queue Applied to automatically send a pull-request to merge-queue after passing EWS checks and removed safe-merge-queue Applied to automatically send a pull-request to merge-queue after passing EWS checks labels Mar 11, 2026
@hyjorc1 hyjorc1 changed the title [JSC] Simplify quick DFG/FTL tier-up flags from TriState to bool [JSC] Allow quick DFG/FTL tier-up recovery after reinstall Mar 13, 2026
@hyjorc1 hyjorc1 force-pushed the eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool branch from fd31306 to 6c169c0 Compare March 13, 2026 15:46
@hyjorc1 hyjorc1 added the merge-queue Applied to send a pull request to merge-queue label Mar 13, 2026
@webkit-commit-queue webkit-commit-queue force-pushed the eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool branch from 6c169c0 to f6e4343 Compare March 13, 2026 19:08
@hyjorc1 hyjorc1 added merge-queue Applied to send a pull request to merge-queue and removed merge-queue Applied to send a pull request to merge-queue labels Mar 13, 2026
@hyjorc1 hyjorc1 force-pushed the eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool branch from f6e4343 to f05e49d Compare March 13, 2026 19:51
@hyjorc1 hyjorc1 added the merge-queue Applied to send a pull request to merge-queue label Mar 13, 2026
https://bugs.webkit.org/show_bug.cgi?id=309687
rdar://172290040

Reviewed by Dan Hecht.

Quick tier-up reduces the optimization threshold for functions that have
previously run JIT code successfully, letting them re-tier faster after
jettison.

Previously didInstallDFGCode() and didInstallFTLCode() were one-shot:
once the flag was cleared by a jettison, subsequent reinstalls could not
recover it. This patch allows recovery on reinstall.

A jettison is a profiling event — the speculation failure reveals type
information that baseline JIT captures, and a re-compile against those
richer profiles is likely more stable. Penalizing it permanently was
counterproductive.

Canonical link: https://commits.webkit.org/309230@main
@webkit-commit-queue webkit-commit-queue force-pushed the eng/JSC-Simplify-quick-DFG-FTL-tier-up-flags-from-TriState-to-bool branch from f05e49d to f92b82d Compare March 13, 2026 20:30
@webkit-commit-queue
Copy link
Copy Markdown
Collaborator

Committed 309230@main (f92b82d): https://commits.webkit.org/309230@main

Reviewed commits have been landed. Closing PR #60373 and removing active labels.

@webkit-commit-queue webkit-commit-queue merged commit f92b82d into WebKit:main Mar 13, 2026
@webkit-commit-queue webkit-commit-queue removed the merge-queue Applied to send a pull request to merge-queue label Mar 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

New Bugs Unclassified bugs are placed in this component until the correct component can be determined.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants