Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 020b68a05dfa95fb965b9a305bbcbd0ff615cb28
      
https://github.com/WebKit/WebKit/commit/020b68a05dfa95fb965b9a305bbcbd0ff615cb28
  Author: Dan Hecht <[email protected]>
  Date:   2026-04-21 (Tue, 21 Apr 2026)

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

  Log Message:
  -----------
  [JSC] Run lowerAfterRegAlloc before fixObviousSpills
https://bugs.webkit.org/show_bug.cgi?id=312830
rdar://175202930

Reviewed by Yusuke Suzuki.

fixObviousSpills tracks register/slot/constant aliases through Move
instructions but treats Shuffle as opaque. Rather than teaching it
Shuffle's parallel-assignment semantics, run lowerAfterRegAlloc first
so that Shuffles are decomposed into Moves and new spill slot accesses
(for scratch registers and ColdCCall save/restore) are all visible to
the alias analysis.

Running fixObviousSpills before lowerAfterRegAlloc could go either way
for scratch register availability: it eliminates some spill slot
accesses but also extends register live ranges. The net effect is
unclear and likely negligible.

This also prepares for upcoming register allocator changes that will
make heavier use of Shuffle for live range splitting fixup.

* Source/JavaScriptCore/b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):

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



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

Reply via email to