From patchwork Mon Oct 22 03:47:38 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [lra] patch to fix a gfortran test failure Date: Sun, 21 Oct 2012 17:47:38 -0000 From: Vladimir Makarov X-Patchwork-Id: 193073 Message-Id: <5084C1DA.9080001@redhat.com> To: GCC Patches 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 * lra-constraints.c (inherit_in_ebb): Check sibling call. 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);