Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 259a8560a7d22a95247c2dadf3c921db7592eb6b
      
https://github.com/WebKit/WebKit/commit/259a8560a7d22a95247c2dadf3c921db7592eb6b
  Author: Dan Hecht <[email protected]>
  Date:   2025-03-21 (Fri, 21 Mar 2025)

  Changed paths:
    A JSTests/stress/fasttmps-cause-out-of-registers.js
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp
    M Source/JavaScriptCore/b3/air/AirRegisterAllocatorStats.h

  Log Message:
  -----------
  [JSC][GreedyRegAlloc] fastTmps should spill as a last resort
https://bugs.webkit.org/show_bug.cgi?id=290039
rdar://147419532

Reviewed by Yijia Huang.

Rather than marking fastTmps as unspillable, make them
spillable but with a very high spill cost so that they will
be spilled only as a last resort. Otherwise, the register
allocator can run out of registers.

* JSTests/stress/fasttmps-cause-out-of-registers.js: Added.
(test):
(opt):
* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp:
(JSC::B3::Air::Greedy::TmpData::dump const):
(JSC::B3::Air::Greedy::TmpData::spillCost):
(JSC::B3::Air::Greedy::GreedyAllocator::initSpillCosts):
(JSC::B3::Air::Greedy::GreedyAllocator::addSpillTmpWithInterval):
(JSC::B3::Air::Greedy::GreedyAllocator::tryEvict):
* Source/JavaScriptCore/b3/air/AirRegisterAllocatorStats.h:

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to