aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir N. Makarov <vmakarov@redhat.com>2020-02-28 11:27:30 -0500
committerVladimir N. Makarov <vmakarov@redhat.com>2020-02-28 11:27:30 -0500
commitf3ce088645e5305d932380c7520809181b2d2eb9 (patch)
tree924a716ec604561d25ef7bbd3bb07c250cdfa2cb
parent349297b6e69c5af74ed26a333488b1bf994dbcce (diff)
downloadgcc-f3ce088645e5305d932380c7520809181b2d2eb9.zip
gcc-f3ce088645e5305d932380c7520809181b2d2eb9.tar.gz
gcc-f3ce088645e5305d932380c7520809181b2d2eb9.tar.bz2
One more patch for PR93564: Prefer smaller hard regno when we do not honor reg alloc order.
2020-02-28 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/93564 * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we do not honor reg alloc order.
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/ira-color.c4
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f6a9ae2..1451807 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-02-28 Vladimir Makarov <vmakarov@redhat.com>
+
+ PR rtl-optimization/93564
+ * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we
+ do not honor reg alloc order.
+
2020-02-27 Joel Hutton <Joel.Hutton@arm.com>
PR target/87612
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index 0ffdd19..a2bf108 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -1925,7 +1925,9 @@ assign_hard_reg (ira_allocno_t a, bool retry_p)
}
if (min_cost > cost)
min_cost = cost;
- if (min_full_cost > full_cost)
+ if (min_full_cost > full_cost
+ || (!HONOR_REG_ALLOC_ORDER && min_full_cost == full_cost
+ && best_hard_regno > hard_regno))
{
min_full_cost = full_cost;
best_hard_regno = hard_regno;