public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Steven Bosscher <stevenb.gcc@gmail.com>
To: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: [patch] reorg.c janitor: remove epilogue_delay_list
Date: Fri, 30 Nov 2012 22:03:00 -0000	[thread overview]
Message-ID: <CABu31nP91GS_9d_63ggizAzpuCdFdXn_b8Bo917GR1BG_E6kNQ@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 262 bytes --]

Hello,

This epilogue_delay_list probably existed only for text epilogues, but
it is now unused.

Tested by building a set of cc1-i files at -O2 for SPARC with and
without the patch, and verifying that there are no code gen changes.

OK for trunk?

Ciao!
Steven

[-- Attachment #2: reorg_janitor_4.diff --]
[-- Type: application/octet-stream, Size: 4959 bytes --]

	* 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.

Index: function.h
===================================================================
--- function.h	(revision 194007)
+++ function.h	(working copy)
@@ -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: reorg.c
===================================================================
--- reorg.c	(revision 194007)
+++ reorg.c	(working copy)
@@ -444,12 +444,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 ();
@@ -813,8 +808,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: final.c
===================================================================
--- final.c	(revision 194007)
+++ final.c	(working copy)
@@ -4099,22 +4099,7 @@ 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 +4168,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: varasm.c
===================================================================
--- varasm.c	(revision 194007)
+++ varasm.c	(working copy)
@@ -3829,11 +3829,6 @@ mark_constant_pool (void)
 
   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.  */
Index: except.c
===================================================================
--- except.c	(revision 194007)
+++ except.c	(working copy)
@@ -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: cfgrtl.c
===================================================================
--- cfgrtl.c	(revision 194007)
+++ cfgrtl.c	(working copy)
@@ -2015,14 +2015,6 @@ print_rtl_with_bb (FILE *outf, const_rtx rtx_first
       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.  */

             reply	other threads:[~2012-11-30 22:01 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-30 22:03 Steven Bosscher [this message]
2012-12-01 19:11 ` Jeff Law

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CABu31nP91GS_9d_63ggizAzpuCdFdXn_b8Bo917GR1BG_E6kNQ@mail.gmail.com \
    --to=stevenb.gcc@gmail.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).