From caf3c4b8b9e4cab8016d7fcc7d095ced5c146050 Mon Sep 17 00:00:00 2001 From: Sigurd Schneider Date: Fri, 28 Jun 2019 16:39:07 +0200 Subject: [PATCH] [reg-alloc] Try to use same register after deferred-fixed range Change-Id: I0dff07c33d55a3e1b8b16e095d771337c51876ba Bug: v8:9088 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1682029 Reviewed-by: Georg Neis Commit-Queue: Sigurd Schneider Cr-Commit-Position: refs/heads/master@{#62466} --- src/compiler/backend/register-allocator.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/compiler/backend/register-allocator.cc b/src/compiler/backend/register-allocator.cc index 57ea2c1a26..e01d45eb93 100644 --- a/src/compiler/backend/register-allocator.cc +++ b/src/compiler/backend/register-allocator.cc @@ -3477,6 +3477,8 @@ void LinearScanAllocator::UpdateDeferredFixedRanges(SpillMode spill_mode, RegisterName(other->assigned_register())); LiveRange* split_off = other->SplitAt(next_start, data()->allocation_zone()); + // Try to get the same register after the deferred block. + split_off->set_controlflow_hint(other->assigned_register()); DCHECK_NE(split_off, other); AddToUnhandled(split_off); update_caches(other);