Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 0cc09201a8afe1445730995bcf2f0b7d5ae9970b
      
https://github.com/WebKit/WebKit/commit/0cc09201a8afe1445730995bcf2f0b7d5ae9970b
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-06-22 (Mon, 22 Jun 2026)

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

  Log Message:
  -----------
  [JSC] Reduce # of Air::Code iteration in Greedy regalloc
https://bugs.webkit.org/show_bug.cgi?id=317459
rdar://180079592

Reviewed by Dan Hecht.

We iterate Air::Code several times unnecessarily, but this is costly
when Air::Code is very large. This patch introduces several
optimizations to reduce compile time.

1. cannotSpillInPlace collection is moved to buildLiveRanges time.
2. TmpWidth collection becomes unified for both GP and FP.
3. More than 90~% of program does not have FP. Thus we stop running
   various algorithm when there is no FP tmps.

* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp:
(JSC::B3::Air::Greedy::GreedyAllocator::run):
(JSC::B3::Air::Greedy::GreedyAllocator::buildLiveRanges):
(JSC::B3::Air::Greedy::GreedyAllocator::initSpillCosts):
* Source/JavaScriptCore/b3/air/AirTmpWidth.cpp:
(JSC::B3::Air::TmpWidth::TmpWidth):
(JSC::B3::Air::TmpWidth::recompute):
(JSC::B3::Air::TmpWidth::recomputeBoth):
* Source/JavaScriptCore/b3/air/AirTmpWidth.h:

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



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

Reply via email to