Commit 68a43849 authored by Thibaud Michaud's avatar Thibaud Michaud Committed by V8 LUCI CQ

[regalloc] Skip unnecessary inactive live range iterations

Inactive live ranges are ordered by their next start, so in
UpdateDeferredFixedRanges, we can stop the search for conflicts as soon
as the next start is after the end of the current extent of deferred
code.

Bug: v8:11861
Change-Id: I114eb776c8228948ecca68d105224b121be8931b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960950Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75149}
parent 31251988
......@@ -3424,6 +3424,7 @@ void LinearScanAllocator::UpdateDeferredFixedRanges(SpillMode spill_mode,
continue;
}
for (auto inactive : inactive_live_ranges(reg)) {
if (inactive->NextStart() > max) break;
split_conflicting(range, inactive, [this](LiveRange* updated) {
next_inactive_ranges_change_ =
std::min(updated->End(), next_inactive_ranges_change_);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment