Patchwork [lra] patch to fix a gfortran test failure

login
register
mail settings
Submitter Vladimir Makarov
Date Oct. 22, 2012, 3:47 a.m.
Message ID <5084C1DA.9080001@redhat.com>
Download mbox | patch
Permalink /patch/193073/
State New
Headers show

Comments

Vladimir Makarov - Oct. 22, 2012, 3:47 a.m.
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.

Patch

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);