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. */
next 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).