aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-constraints.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2013-09-18 19:12:16 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2013-09-18 19:12:16 +0000
commit8a26ad39c470d050dee58212c00ab64fe8c696f3 (patch)
tree94cdb025985dd38477b1b66ba9de709cb98c1e86 /gcc/lra-constraints.c
parent09487185c83f172a19834437d3a5bc0fff12d588 (diff)
downloadgcc-8a26ad39c470d050dee58212c00ab64fe8c696f3.zip
gcc-8a26ad39c470d050dee58212c00ab64fe8c696f3.tar.gz
gcc-8a26ad39c470d050dee58212c00ab64fe8c696f3.tar.bz2
lra-constraints.c (need_for_all_save_p): Use macro HARD_REGNO_CALL_PART_CLOBBERED.
2013-09-18 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (need_for_all_save_p): Use macro HARD_REGNO_CALL_PART_CLOBBERED. * lra-lives.c (check_pseudos_live_through_calls): Use the macro to set up pseudo conflict hard regs. From-SVN: r202721
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r--gcc/lra-constraints.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index e87ba91..f9652c7 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -4335,7 +4335,9 @@ need_for_call_save_p (int regno)
return (usage_insns[regno].calls_num < calls_num
&& (overlaps_hard_reg_set_p
(call_used_reg_set,
- PSEUDO_REGNO_MODE (regno), reg_renumber[regno])));
+ PSEUDO_REGNO_MODE (regno), reg_renumber[regno])
+ || HARD_REGNO_CALL_PART_CLOBBERED (reg_renumber[regno],
+ PSEUDO_REGNO_MODE (regno))));
}
/* Global registers occurring in the current EBB. */