From: Hans-Peter Nilsson Date: Wed, 19 Jan 2005 16:39:20 +0000 (+0000) Subject: re PR rtl-optimization/19462 (generating return insns while current_function_epilogue... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=09f9e288672cb836370bfe7d8baeaadeef7b57c0;p=gcc.git re PR rtl-optimization/19462 (generating return insns while current_function_epilogue_delay_list nonempty) PR rtl-optimization/19462 * reorg.c (find_end_label): Create return insn only if current_function_epilogue_delay_list is empty. From-SVN: r93901 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e36882b6aed..87dff43f90d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-01-19 Hans-Peter Nilsson + + PR rtl-optimization/19462 + * reorg.c (find_end_label): Create return insn only if + current_function_epilogue_delay_list is empty. + 2005-01-19 Paolo Bonzini * doc/passes.texi: Remove paragraph mentioning new-ra. 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 ();