[lra] patch to fix a gfortran test failure
Vladimir Makarov
vmakarov@redhat.com
Mon Oct 22 07:16:00 GMT 2012
The following patch fixes a gfortran test failure. LRA tried to put
a split code after sibling call. Sibling calls mean no return.
Committed as rev. 192657.
2012-10-21 Vladimir Makarov <vmakarov@redhat.com>
* lra-constraints.c (inherit_in_ebb): Check sibling call.
-------------- next part --------------
Index: lra-constraints.c
===================================================================
--- lra-constraints.c (revision 192656)
+++ lra-constraints.c (working copy)
@@ -4491,8 +4491,9 @@ inherit_in_ebb (rtx head, rtx tail)
last_insn = get_last_insertion_point (curr_bb);
after_p = (! JUMP_P (last_insn)
&& (! CALL_P (last_insn)
- || find_reg_note (last_insn,
- REG_NORETURN, NULL) == NULL_RTX));
+ || (find_reg_note (last_insn,
+ REG_NORETURN, NULL) == NULL_RTX
+ && ! SIBLING_CALL_P (last_insn))));
REG_SET_TO_HARD_REG_SET (live_hard_regs, df_get_live_out (curr_bb));
IOR_HARD_REG_SET (live_hard_regs, eliminable_regset);
IOR_HARD_REG_SET (live_hard_regs, lra_no_alloc_regs);
More information about the Gcc-patches
mailing list