function.c (thread_prologue_and_epilogue_insns): Don't insert a RETURN insn into a block which already ends with a jump.
* function.c (thread_prologue_and_epilogue_insns): Don't insert a RETURN insn into a block which already ends with a jump. From-SVN: r31928
This commit is contained in:
parent
3db18f599e
commit
2dd8bc0166
|
@ -1,3 +1,8 @@
|
|||
2000-02-11 Geoff Keating <geoffk@cygnus.com>
|
||||
|
||||
* function.c (thread_prologue_and_epilogue_insns): Don't insert
|
||||
a RETURN insn into a block which already ends with a jump.
|
||||
|
||||
2000-02-11 Geoff Keating <geoffk@cygnus.com>
|
||||
|
||||
* haifa-sched.c (BUF_LEN): Increase a lot.
|
||||
|
|
|
@ -6746,13 +6746,25 @@ thread_prologue_and_epilogue_insns (f)
|
|||
remove_edge (e);
|
||||
make_edge (NULL, bb, EXIT_BLOCK_PTR, 0);
|
||||
}
|
||||
|
||||
/* Emit a return insn for the exit fallthru block. Whether
|
||||
this is still reachable will be determined later. */
|
||||
|
||||
emit_barrier_after (last->end);
|
||||
emit_return_into_block (last);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* The exit block wasn't empty. We have to use insert_insn_on_edge,
|
||||
as it may be the exit block can go elsewhere as well
|
||||
as exiting. */
|
||||
start_sequence ();
|
||||
emit_jump_insn (gen_return ());
|
||||
seq = gen_sequence ();
|
||||
end_sequence ();
|
||||
insert_insn_on_edge (seq, e);
|
||||
insertted = 1;
|
||||
}
|
||||
|
||||
/* Emit a return insn for the exit fallthru block. Whether
|
||||
this is still reachable will be determined later. */
|
||||
|
||||
emit_barrier_after (last->end);
|
||||
emit_return_into_block (last);
|
||||
goto epilogue_done;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue