Commit d9861b29 authored by Sigurd Schneider's avatar Sigurd Schneider Committed by Commit Bot

[reg-alloc] Propagate control-flow hint after splits

Change-Id: I01199e24c4bb5d8496c13077342e03a41943cdbd
Bug: v8:9088
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684074Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62481}
parent 30c1bee8
......@@ -4559,6 +4559,14 @@ void LinearScanAllocator::SpillBetweenUntil(LiveRange* range,
LiveRange* third_part =
SplitBetween(second_part, split_start, third_part_end);
if (GetInstructionBlock(data()->code(), second_part->Start())
->IsDeferred()) {
// Try to use the same register as before.
TRACE("Setting control flow hint for %d:%d to %s\n",
third_part->TopLevel()->vreg(), third_part->relative_id(),
RegisterName(range->controlflow_hint()));
third_part->set_controlflow_hint(range->controlflow_hint());
}
AddToUnhandled(third_part);
// This can happen, even if we checked for start < end above, as we fiddle
......
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