]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
function.h (struct rtl_data): Remove epilogue_delay_list.
authorSteven Bosscher <steven@gcc.gnu.org>
Sun, 2 Dec 2012 15:43:16 +0000 (15:43 +0000)
committerSteven Bosscher <steven@gcc.gnu.org>
Sun, 2 Dec 2012 15:43:16 +0000 (15:43 +0000)
* function.h (struct rtl_data): Remove epilogue_delay_list.
* reorg.c (find_end_label): Simplify always-true test.
(optimize_skip): Likewise.
* final.c (leaf_function_p): Don't loop over epilogue_delay_list.
(leaf_renumber_regs): Likewise.
* varasm.c (mark_constant_pool): Likewise.
* except.c (set_nothrow_function_flags): Likewise.
* cfgrtl.c (print_rtl_with_bb): Likewise.

From-SVN: r194053

gcc/ChangeLog
gcc/cfgrtl.c
gcc/except.c
gcc/final.c
gcc/function.h
gcc/reorg.c
gcc/varasm.c

index 398c2f042bf414bfe14656097d124bcf0edb3dd5..4b6c703b8488cd289db6d2169c57eb6eb8eec6ec 100644 (file)
@@ -1,3 +1,14 @@
+2012-12-02  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * function.h (struct rtl_data): Remove epilogue_delay_list.
+       * reorg.c (find_end_label): Simplify always-true test.
+       (optimize_skip): Likewise.
+       * final.c (leaf_function_p): Don't loop over epilogue_delay_list.
+       (leaf_renumber_regs): Likewise.
+       * varasm.c (mark_constant_pool): Likewise.
+       * except.c (set_nothrow_function_flags): Likewise.
+       * cfgrtl.c (print_rtl_with_bb): Likewise.
+
 2012-12-02  Hans-Peter Nilsson  <hp@bitrange.com>
 
        * config/mmix/mmix.c (mmix_function_value): Set the mode of the
index 197f8718116adb03610f590003dc00e08f6be652..386dedefd4b192f894f69a057a910258c85bf475 100644 (file)
@@ -2015,14 +2015,6 @@ print_rtl_with_bb (FILE *outf, const_rtx rtx_first, int flags)
       free (end);
       free (in_bb_p);
     }
-
-  if (crtl->epilogue_delay_list != 0)
-    {
-      fprintf (outf, "\n;; Insns in epilogue delay list:\n\n");
-      for (tmp_rtx = crtl->epilogue_delay_list; tmp_rtx != 0;
-          tmp_rtx = XEXP (tmp_rtx, 1))
-       print_rtl_single (outf, XEXP (tmp_rtx, 0));
-    }
 }
 \f
 /* Update the branch probability of BB if a REG_BR_PROB is present.  */
index 287b75bc975ef99e267114a9f25fda52b99527f5..1f7b7f3f7fbb64461c90905aea356e157e27de20 100644 (file)
@@ -1884,18 +1884,6 @@ set_nothrow_function_flags (void)
          }
       }
 
-  for (insn = crtl->epilogue_delay_list; insn;
-       insn = XEXP (insn, 1))
-    if (can_throw_external (insn))
-      {
-        crtl->nothrow = 0;
-
-       if (!CALL_P (insn) || !SIBLING_CALL_P (insn))
-         {
-           crtl->all_throwers_are_sibcalls = 0;
-           return 0;
-         }
-      }
   if (crtl->nothrow
       && (cgraph_function_body_availability (cgraph_get_node
                                             (current_function_decl))
index 2bd6aebe4bc9463be19bdbc6b84d70cd65f96014..234376d40f60728bfdf679f49dec9b7edf24065b 100644 (file)
@@ -4083,7 +4083,6 @@ int
 leaf_function_p (void)
 {
   rtx insn;
-  rtx link;
 
   if (crtl->profile || profile_arc_flag)
     return 0;
@@ -4099,21 +4098,6 @@ leaf_function_p (void)
          && ! SIBLING_CALL_P (XVECEXP (PATTERN (insn), 0, 0)))
        return 0;
     }
-  for (link = crtl->epilogue_delay_list;
-       link;
-       link = XEXP (link, 1))
-    {
-      insn = XEXP (link, 0);
-
-      if (CALL_P (insn)
-         && ! SIBLING_CALL_P (insn))
-       return 0;
-      if (NONJUMP_INSN_P (insn)
-         && GET_CODE (PATTERN (insn)) == SEQUENCE
-         && CALL_P (XVECEXP (PATTERN (insn), 0, 0))
-         && ! SIBLING_CALL_P (XVECEXP (PATTERN (insn), 0, 0)))
-       return 0;
-    }
 
   return 1;
 }
@@ -4183,11 +4167,6 @@ leaf_renumber_regs (rtx first)
   for (insn = first; insn; insn = NEXT_INSN (insn))
     if (INSN_P (insn))
       leaf_renumber_regs_insn (PATTERN (insn));
-  for (insn = crtl->epilogue_delay_list;
-       insn;
-       insn = XEXP (insn, 1))
-    if (INSN_P (XEXP (insn, 0)))
-      leaf_renumber_regs_insn (PATTERN (XEXP (insn, 0)));
 }
 
 /* Scan IN_RTX and its subexpressions, and renumber all regs into those
index 63704d4fb09e1aa2a5ab1fe704974e723c4eed44..dd7f099e8a5e6f6b3aa2a35b3d2e1fdfd71db253 100644 (file)
@@ -341,10 +341,6 @@ struct GTY(()) rtl_data {
 
   /* For reorg.  */
 
-  /* If some insns can be deferred to the delay slots of the epilogue, the
-     delay list for them is recorded here.  */
-  rtx epilogue_delay_list;
-
   /* Nonzero if function being compiled called builtin_return_addr or
      builtin_frame_address with nonzero count.  */
   bool accesses_prior_frames;
index 612c9cae93b279530012df528e4495f3c2e703b8..f92998ed4a83d8c854f401a8565f872065a48ec5 100644 (file)
@@ -435,12 +435,7 @@ find_end_label (rtx kind)
             if needed.  */
          emit_label (label);
 #ifdef HAVE_return
-         /* We don't bother trying to create a return insn if the
-            epilogue has filled delay-slots; we would have to try and
-            move the delay-slot fillers to the delay-slots for the new
-            return insn or in front of the new return insn.  */
-         if (crtl->epilogue_delay_list == NULL
-             && HAVE_return)
+         if (HAVE_return)
            {
              /* The return we make may have delay slots too.  */
              rtx insn = gen_return ();
@@ -804,8 +799,7 @@ optimize_skip (rtx insn)
      we have one insn followed by a branch to the same label we branch to.
      In both of these cases, inverting the jump and annulling the delay
      slot give the same effect in fewer insns.  */
-  if ((next_trial == next_active_insn (JUMP_LABEL (insn))
-       && ! (next_trial == 0 && crtl->epilogue_delay_list != 0))
+  if (next_trial == next_active_insn (JUMP_LABEL (insn))
       || (next_trial != 0
          && simplejump_or_return_p (next_trial)
          && JUMP_LABEL (insn) == JUMP_LABEL (next_trial)))
index 4c98f8659239757684eae87afdc2c51be12f6f27..ee42afc8cbdcec0fd98024408672e8966af2cc57 100644 (file)
@@ -3822,18 +3822,13 @@ mark_constants (rtx insn)
 static void
 mark_constant_pool (void)
 {
-  rtx insn, link;
+  rtx insn;
 
   if (!crtl->uses_const_pool && n_deferred_constants == 0)
     return;
 
   for (insn = get_insns (); insn; insn = NEXT_INSN (insn))
     mark_constants (insn);
-
-  for (link = crtl->epilogue_delay_list;
-       link;
-       link = XEXP (link, 1))
-    mark_constants (XEXP (link, 0));
 }
 
 /* Write all the constants in POOL.  */