Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2b6b3109ef1a41241ffc50e9f7ef73cbadc0e6ca
https://github.com/WebKit/WebKit/commit/2b6b3109ef1a41241ffc50e9f7ef73cbadc0e6ca
Author: Dan Hecht <[email protected]>
Date: 2026-02-16 (Mon, 16 Feb 2026)
Changed paths:
M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp
Log Message:
-----------
[JSC] GreedyRegAlloc: memoize the spill slot
https://bugs.webkit.org/show_bug.cgi?id=307990
rdar://170479670
Reviewed by Yusuke Suzuki.
When there are large coalescable tmp groups, walking up the group
tree to find the spill slot for a coalesced tmp every time the tmp
appears as an instruction arg can be expensive. Stash the value
of the tmp's spillSlot to avoid this repeated traversal.
Also, pass bank as a template parameter to spillSlot and groupForSpill
to streamline the remaining traversals.
* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp:
(JSC::B3::Air::Greedy::TmpData::dump const):
(JSC::B3::Air::Greedy::TmpData::validate):
(JSC::B3::Air::Greedy::GreedyAllocator::groupForSpill):
(JSC::B3::Air::Greedy::GreedyAllocator::spillSlot):
(JSC::B3::Air::Greedy::GreedyAllocator::ensureGroupSpillSlot):
(JSC::B3::Air::Greedy::GreedyAllocator::emitSpillCodeAndEnqueueNewTmps):
Canonical link: https://commits.webkit.org/307660@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications