[webkit-changes] [WebKit/WebKit] aecb3e: [JSC][GreedyRegAlloc] Add some eviction/spill heur...

Dan Hecht noreply at github.com
Wed Feb 26 13:28:31 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aecb3e1da42b2db89ed5bcf92d9f53413e0bc427
      https://github.com/WebKit/WebKit/commit/aecb3e1da42b2db89ed5bcf92d9f53413e0bc427
  Author: Dan Hecht <dan.hecht at apple.com>
  Date:   2025-02-26 (Wed, 26 Feb 2025)

  Changed paths:
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp

  Log Message:
  -----------
  [JSC][GreedyRegAlloc] Add some eviction/spill heuristic experiments
https://bugs.webkit.org/show_bug.cgi?id=288632
rdar://145680413

Reviewed by Keith Miller.

A current weak point compared to the graph coloring allocator
is spilling choice when under register pressure, which shows
up especially on architectures with fewer registers such as
x64.

So, add some experimental configurations for adjusting the
spill heuristic. I'm not sure which will win out yet,
but I'd like to have these under git for future reference.
I'll go back and clean up the unused ones after things settle.

* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp:
(JSC::B3::Air::Greedy::TmpData::CoalescableWith::dump const):
(JSC::B3::Air::Greedy::TmpData::spillCost):
(JSC::B3::Air::Greedy::TmpData::validate):
(JSC::B3::Air::Greedy::GreedyAllocator::buildLiveRanges):
(JSC::B3::Air::Greedy::GreedyAllocator::finalizeGroups):
(JSC::B3::Air::Greedy::GreedyAllocator::initSpillCosts):
(JSC::B3::Air::Greedy::GreedyAllocator::setStageAndEnqueue):
(JSC::B3::Air::Greedy::GreedyAllocator::tryEvict):

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list