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