diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lra-constraints.c | 1 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dfabde55a1c..a2eea908053 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-09-29 Vladimir Makarov <vmakarov@redhat.com> + + PR rtl-optimization/82338 + * lra-constraints.c (inherit_in_ebb): Check usage_insns check. + 2017-09-29 Alexander Monakov <amonakov@ispras.ru> * genmodes.c (calc_wider_mode): Suppress qsort macro. diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index d90bde2817a..4734c072c96 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -6219,6 +6219,7 @@ inherit_in_ebb (rtx_insn *head, rtx_insn *tail) && ((cheap = XEXP (cheap, 0)), true) && (regno = REGNO (cheap)) >= FIRST_PSEUDO_REGISTER && (hard_regno = reg_renumber[regno]) >= 0 + && usage_insns[regno].check == curr_usage_insns_check /* If there are pending saves/restores, the optimization is not worth. */ && usage_insns[regno].calls_num == calls_num - 1 |