aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-02-27 11:30:14 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-02-27 11:30:14 -0500
commit35b2eb0530dc364d6a7ac2b1d2a4f1a8bd3e62da (patch)
tree207c0275d73733f8fb6d6b977cd52f106ae9a1bc
parent6680889fb778ce4c022e4edbfc618693502aad80 (diff)
downloadgcc-35b2eb0530dc364d6a7ac2b1d2a4f1a8bd3e62da.zip
gcc-35b2eb0530dc364d6a7ac2b1d2a4f1a8bd3e62da.tar.gz
gcc-35b2eb0530dc364d6a7ac2b1d2a4f1a8bd3e62da.tar.bz2
(allocno_compare): Give multi-word regs higher priority, as stated in
the comments. From-SVN: r6650
-rw-r--r--gcc/global.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/global.c b/gcc/global.c
index 1a9158a..eec9ed2 100644
--- a/gcc/global.c
+++ b/gcc/global.c
@@ -1,5 +1,5 @@
/* Allocate registers for pseudo-registers that span basic blocks.
- Copyright (C) 1987, 1988, 1991 Free Software Foundation, Inc.
+ Copyright (C) 1987, 1988, 1991, 1994 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -573,12 +573,12 @@ allocno_compare (v1, v2)
Multiplying this by 10000 can't overflow. */
register int pri1
= (((double) (floor_log2 (allocno_n_refs[*v1]) * allocno_n_refs[*v1])
- / (allocno_live_length[*v1] * allocno_size[*v1]))
- * 10000);
+ / allocno_live_length[*v1])
+ * 10000 * allocno_size[*v1]);
register int pri2
= (((double) (floor_log2 (allocno_n_refs[*v2]) * allocno_n_refs[*v2])
- / (allocno_live_length[*v2] * allocno_size[*v2]))
- * 10000);
+ / allocno_live_length[*v2])
+ * 10000 * allocno_size[*v2]);
if (pri2 - pri1)
return pri2 - pri1;