From 69732dcb9c663d68d2a5d433ce76ed8da43e5632 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 6 Feb 2000 05:01:03 -0800 Subject: 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 --- gcc/jump.c | 39 --------------------------------------- 1 file changed, 39 deletions(-) (limited to 'gcc/jump.c') diff --git a/gcc/jump.c b/gcc/jump.c index ad213bc..417425d 100644 --- a/gcc/jump.c +++ b/gcc/jump.c @@ -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 -- cgit v1.1