diff options
author | Richard Henderson <rth@cygnus.com> | 2000-02-06 05:01:03 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-02-06 05:01:03 -0800 |
commit | 69732dcb9c663d68d2a5d433ce76ed8da43e5632 (patch) | |
tree | 14cb8de0063e0e21049d8e2193ad60c82320ff4c /gcc/jump.c | |
parent | 52a75c3c22a68d2acdbdf6e2e5070b1f424bfc81 (diff) | |
download | gcc-69732dcb9c663d68d2a5d433ce76ed8da43e5632.zip gcc-69732dcb9c663d68d2a5d433ce76ed8da43e5632.tar.gz gcc-69732dcb9c663d68d2a5d433ce76ed8da43e5632.tar.bz2 |
flow.c (flow_delete_insn, [...]): Export.
* flow.c (flow_delete_insn, make_edge, remove_edge): Export.
* basic-block.h: Declare them.
* emit-rtl.h (active_insn_p): New.
(next_active_insn, prev_active_insn): Use it.
* rtl.h: Declare it.
* function.c (emit_return_into_block): New.
(thread_prologue_and_epilogue_insns): Insert return insns instead
of epilogues when possible.
* jump.c (jump_optimize_1): Remove code to insert a return insn
on the fallthru to the exit block.
From-SVN: r31826
Diffstat (limited to 'gcc/jump.c')
-rw-r--r-- | gcc/jump.c | 39 |
1 files changed, 0 insertions, 39 deletions
@@ -232,25 +232,6 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only) last_insn = delete_unreferenced_labels (f); -#ifdef HAVE_return - if (optimize && 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. */ - 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 - if (noop_moves) delete_noop_moves (f); @@ -2142,26 +2123,6 @@ jump_optimize_1 (f, cross_jump, noop_moves, after_regscan, mark_labels_only) } } -#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 - /* CAN_REACH_END is persistent for each function. Once set it should not be cleared. This is especially true for the case where we delete the NOTE_FUNCTION_END note. CAN_REACH_END is cleared by |