diff options
author | Jan Hubicka <jh@suse.cz> | 2001-07-11 21:42:35 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2001-07-11 19:42:35 +0000 |
commit | 46fac66482f1cf5cc61f7fef9de8b7593c8357e7 (patch) | |
tree | 60903d3543bd7ef55ab3cdb0ddd8b7aed79a1788 /gcc/sibcall.c | |
parent | 669f7a035a384894ac482e00c291d393a21ba2d0 (diff) | |
download | gcc-46fac66482f1cf5cc61f7fef9de8b7593c8357e7.zip gcc-46fac66482f1cf5cc61f7fef9de8b7593c8357e7.tar.gz gcc-46fac66482f1cf5cc61f7fef9de8b7593c8357e7.tar.bz2 |
flow.c (merge_blocks_move_successor_nojumps): Do not crash when fallthru edge is present.
* flow.c (merge_blocks_move_successor_nojumps): Do not crash
when fallthru edge is present.
(mege_blocks): Handle case where creation of jump insn
is required.
* basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP,
CLEANUP_POST_REGSTACK): New constants.
* except.c (finish_eh_generation): Update call of cleanup_cfg,
* jump.c (rtx_renumbered_equal_p): Handle 't' fields.
* output.h (cleanup_cfg): Update prototype.
* reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize
* sibcall.c (optimize_sibling_and_tail_recursive_call): Update
cleanup_cfg call; kill missleading comment.
* toplev.c (rest_of_compilation): Update all cleanup_cfg calls.
* flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode
parameter; control optimizations performed using it.
(flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge,
try_crossjump_bb): New functions.
From-SVN: r43950
Diffstat (limited to 'gcc/sibcall.c')
-rw-r--r-- | gcc/sibcall.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/gcc/sibcall.c b/gcc/sibcall.c index 5c437b1..62184e8 100644 --- a/gcc/sibcall.c +++ b/gcc/sibcall.c @@ -565,15 +565,11 @@ optimize_sibling_and_tail_recursive_calls () ahead and find all the EH labels. */ find_exception_handler_labels (); - /* Run a jump optimization pass to clean up the CFG. We primarily want - this to thread jumps so that it is obvious which blocks jump to the - epilouge. */ jump_optimize_minimal (insns); - /* We need cfg information to determine which blocks are succeeded only by the epilogue. */ find_basic_blocks (insns, max_reg_num (), 0); - cleanup_cfg (); + cleanup_cfg (0); /* If there are no basic blocks, then there is nothing to do. */ if (n_basic_blocks == 0) |