Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 4c15f53941bbeac26438539d375e470cdd7229a9 https://github.com/WebKit/WebKit/commit/4c15f53941bbeac26438539d375e470cdd7229a9 Author: Dan Hecht <dan.he...@apple.com> Date: 2025-02-25 (Tue, 25 Feb 2025)
Changed paths: M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp Log Message: ----------- [JSC][GreedyRegAlloc] Don't spill Tmps used only in back-to-back insts unless both insts can address the stack https://bugs.webkit.org/show_bug.cgi?id=288420 rdar://145515418 Reviewed by Yijia Huang. If a tmp is used only by two consecutive instructions and at least one of the instructions does not have a stack addressing mode, then don't allow the tmp to spill. The spill tmp will have the same interval and so there is no benefit to allowing . Note that rather than simply setting the spillCost field, a new flag is intruduced. This is because we don't want groups (i.e. eagerly coalesced tmps) to inherit the unspillable property since these coalesced tmps shouldn't be treated as unspillable since they will span more instructions. If the group is split, then the indvidual tmp will be unspillable. * Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp: (JSC::B3::Air::Greedy::TmpData::dump const): (JSC::B3::Air::Greedy::TmpData::spillCost): (JSC::B3::Air::Greedy::TmpData::validate): (JSC::B3::Air::Greedy::GreedyAllocator::finalizeGroups): (JSC::B3::Air::Greedy::GreedyAllocator::initSpillCosts): (JSC::B3::Air::Greedy::GreedyAllocator::newTmp): (JSC::B3::Air::Greedy::GreedyAllocator::addSpillTmpWithInterval): (JSC::B3::Air::Greedy::GreedyAllocator::setStageAndEnqueue): (JSC::B3::Air::Greedy::GreedyAllocator::tryEvict): (JSC::B3::Air::Greedy::GreedyAllocator::evict): (JSC::B3::Air::Greedy::GreedyAllocator::trySplit): (JSC::B3::Air::Greedy::GreedyAllocator::trySplitAroundClobbers): (JSC::B3::Air::Greedy::GreedyAllocator::spill): Canonical link: https://commits.webkit.org/291029@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes