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

Reply via email to