[reg-alloc] Propagate control-flow hint after splits
Change-Id: I01199e24c4bb5d8496c13077342e03a41943cdbd Bug: v8:9088 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684074 Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62481}
This commit is contained in:
parent
30c1bee848
commit
d9861b2969
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user