summaryrefslogtreecommitdiff
path: root/gcc/reorg.c
diff options
context:
space:
mode:
authorhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-19 16:39:20 +0000
committerhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>2005-01-19 16:39:20 +0000
commit5c0802aa340b5067b887248ffae6862f64f33fd1 (patch)
tree37832746928ff701a0a0bd32120c124a14bd4451 /gcc/reorg.c
parentedb111a3926f5e1f8238c62bfb15705dc2b21124 (diff)
downloadgcc-5c0802aa340b5067b887248ffae6862f64f33fd1.tar.gz
PR rtl-optimization/19462
* reorg.c (find_end_label): Create return insn only if current_function_epilogue_delay_list is empty. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93901 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r--gcc/reorg.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index fbaf968df73..78940ff9a58 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -420,7 +420,12 @@ find_end_label (void)
if needed. */
emit_label (end_of_function_label);
#ifdef HAVE_return
- if (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 (current_function_epilogue_delay_list == NULL
+ && HAVE_return)
{
/* The return we make may have delay slots too. */
rtx insn = gen_return ();