diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2005-01-19 16:39:20 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2005-01-19 16:39:20 +0000 |
commit | 09f9e288672cb836370bfe7d8baeaadeef7b57c0 (patch) | |
tree | 37832746928ff701a0a0bd32120c124a14bd4451 /gcc/reorg.c | |
parent | a26ddf116ec21df0a1e74c888d469647b6f2f396 (diff) | |
download | gcc-09f9e288672cb836370bfe7d8baeaadeef7b57c0.zip gcc-09f9e288672cb836370bfe7d8baeaadeef7b57c0.tar.gz gcc-09f9e288672cb836370bfe7d8baeaadeef7b57c0.tar.bz2 |
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
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r-- | gcc/reorg.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index fbaf968..78940ff 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 (); |