aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2017-07-20 18:15:55 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2017-07-20 18:15:55 +0300
commitf0a404561c4abc2fcb6015cc96ca779b8eecc411 (patch)
tree74d95805cb92b58f651951140b1a44054bb3b68a /gcc
parent109cca3b53eaf9883143a095ce277de26fc7da4f (diff)
downloadgcc-f0a404561c4abc2fcb6015cc96ca779b8eecc411.zip
gcc-f0a404561c4abc2fcb6015cc96ca779b8eecc411.tar.gz
gcc-f0a404561c4abc2fcb6015cc96ca779b8eecc411.tar.bz2
lra-assigns.c: fix pseudo_compare_func
* lra-assigns.c (pseudo_compare_func): Fix comparison step based on non_spilled_static_chain_regno_p. From-SVN: r250395
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/lra-assigns.c7
2 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9eb61fe..cb7e697 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2017-07-20 Alexander Monakov <amonakov@ispras.ru>
+ * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
+ non_spilled_static_chain_regno_p.
+
+2017-07-20 Alexander Monakov <amonakov@ispras.ru>
+
* gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
2017-07-20 Jan Hubicka <hubicka@ucw.cz>
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c
index 42556d3..2aadeef 100644
--- a/gcc/lra-assigns.c
+++ b/gcc/lra-assigns.c
@@ -253,10 +253,9 @@ pseudo_compare_func (const void *v1p, const void *v2p)
/* Assign hard reg to static chain pointer first pseudo when
non-local goto is used. */
- if (non_spilled_static_chain_regno_p (r1))
- return -1;
- else if (non_spilled_static_chain_regno_p (r2))
- return 1;
+ if ((diff = (non_spilled_static_chain_regno_p (r2)
+ - non_spilled_static_chain_regno_p (r1))) != 0)
+ return diff;
/* Prefer to assign more frequently used registers first. */
if ((diff = lra_reg_info[r2].freq - lra_reg_info[r1].freq) != 0)