Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3ff28397ed184422aa80769c7fecde89e13a1f05
      
https://github.com/WebKit/WebKit/commit/3ff28397ed184422aa80769c7fecde89e13a1f05
  Author: Dan Hecht <dan.he...@apple.com>
  Date:   2025-03-01 (Sat, 01 Mar 2025)

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

  Log Message:
  -----------
  [JSC][GreedyRegAlloc] Memory efficiency optimizations
https://bugs.webkit.org/show_bug.cgi?id=288870
rdar://145879396

Reviewed by Keith Miller.

TmpData and LiveRange usage scale linear with the number of Tmps, and
Interval usage scales superlinear to number of Tmps, depending on
use/def patterns, so let's make these more compact:

1. Interval stores two Points, reduce Point from 64 to 32-bits.
   This reduces the number of Inst per Code that can be handled
   down to 2**31, but that should be more than sufficient still.
   Interval size goes from 16 bytes to 8 bytes.
2. Remove the bool from LiveRange since its overhead is 8 bytes
   (including the padding).
   LiveRange size goes from 48 bytes to 40 bytes.
3. Sort the fields in TmpData from largest to smallest to reduce
   padding.
   TmpData size goes from 120 bytes to 88 bytes.

* Source/JavaScriptCore/b3/air/AirAllocateRegistersByGreedy.cpp:
(JSC::B3::Air::Greedy::LiveRange::dump const):
(JSC::B3::Air::Greedy::GreedyAllocator::buildLiveRanges):
(JSC::B3::Air::Greedy::GreedyAllocator::setStageAndEnqueue):
(JSC::B3::Air::Greedy::LiveRange::crossBasicBlockBoundary): Deleted.
(JSC::B3::Air::Greedy::LiveRange::isLocal const): Deleted.

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



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

Reply via email to