(jump_optimize): Try putting RETURN at end of function both at start

and at end of our optimization.

From-SVN: r5376
This commit is contained in:
Richard Kenner 1993-09-21 10:20:39 -04:00
parent 2c4c436ae8
commit 683e6ccd1d

View File

@ -1916,6 +1916,26 @@ jump_optimize (f, cross_jump, noop_moves, after_regscan)
}
}
#ifdef HAVE_return
if (HAVE_return)
{
/* If we fall through to the epilogue, see if we can insert a RETURN insn
in front of it. If the machine allows it at this point (we might be
after reload for a leaf routine), it will improve optimization for it
to be there. We do this both here and at the start of this pass since
the RETURN might have been deleted by some of our optimizations. */
insn = get_last_insn ();
while (insn && GET_CODE (insn) == NOTE)
insn = PREV_INSN (insn);
if (insn && GET_CODE (insn) != BARRIER)
{
emit_jump_insn (gen_return ());
emit_barrier ();
}
}
#endif
/* See if there is still a NOTE_INSN_FUNCTION_END in this function.
If so, delete it, and record that this function can drop off the end. */