diff options
author | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-29 07:47:56 +0000 |
---|---|---|
committer | rakdver <rakdver@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-01-29 07:47:56 +0000 |
commit | 5f5d4cd12a68a2564978c5cbacbae78e7f9f1559 (patch) | |
tree | 075d0d98ba746f488ac4ecf2ecf94a83992aacbc /gcc/ifcvt.c | |
parent | d41dc6f8ad2b5f4e3d1bfd130e7f67dc10a99579 (diff) | |
download | gcc-5f5d4cd12a68a2564978c5cbacbae78e7f9f1559.tar.gz |
* Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
* basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
verify_flow_info): Declaration removed.
* cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
(debug_bb, debug_bb_n): Add argument to dump_bb call.
* cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
instead of delete_block.
* cfghooks.c: Include timevar.h and toplev.h.
(cfg_hooks): Define here.
(verify_flow_info, dump_bb): Moved from cfg.c.
(redirect_edge_and_branch, redirect_edge_and_branch_force,
split_block, split_block_after_labels, move_block_after,
delete_basic_block, split_edge, create_basic_block,
create_empty_bb, can_merge_blocks_p, merge_blocks,
make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
New functions.
* cfghooks.h (struct cfg_hooks): Added fields name,
make_forwarder_block, tidy_fallthru_edge and
move_block_after. Changed type of verify_flow_info, dump_bb,
split_block fields. Renamed cfgh_split_edge and delete_block
fields.
(redirect_edge_and_branch, redirect_edge_and_branch_force,
split_block, delete_block, split_edge, create_basic_block,
can_merge_blocks_p, merge_blocks): Macros removed.
(cfg_hooks): Do not export.
(verify_flow_info, dump_bb, redirect_edge_and_branch,
redirect_edge_and_branch_force, split_block, split_block_after_labels,
move_block_after, delete_basic_block, split_edge, create_basic_block,
create_empty_bb, can_merge_blocks_p, merge_blocks,
make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
Declare.
(cfg_layout_rtl_cfg_hooks): Declare.
* cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
New functions.
(canonicalize_loop_headers): Use new semantics of make_forwarder_block.
(redirect_edge_with_latch_update): Removed.
(make_forwarder_block): Moved to cfghooks.c, semantics changed.
* cfgloopmanip.c (remove_bbs): Do not update dominators here.
* cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
rtl_delete_block, rtl_split_block, rtl_merge_blocks,
tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
cfghooks.c.
(rtl_create_basic_block): Coding style fix.
(rtl_tidy_fallthru_edge, rtl_move_block_after,
rtl_make_forwarder_block): New functions.
(update_cfg_after_block_merging): Removed.
(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
* flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
to dump_bb.
* ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
find_if_case_2): Don't update dominators.
* timevar.def (TV_CFG_VERIFY): New.
* loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
* cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
* cfgloopmanip.c (split_loop_bb): Don't update dominators.
(remove_bbs): Don't call remove_bbs.
(create_preheader): Use make_forwarder_block.
(mfb_keep_just, mfb_update_loops): New static functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76851 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index ffcb0016298..7a790638091 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -2103,8 +2103,6 @@ merge_if_block (struct ce_if_block * ce_info) { bb = fallthru; fallthru = block_fallthru (bb); - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, bb); merge_blocks (combo_bb, bb); num_true_changes++; } @@ -2120,8 +2118,6 @@ merge_if_block (struct ce_if_block * ce_info) if (combo_bb->global_live_at_end) COPY_REG_SET (combo_bb->global_live_at_end, then_bb->global_live_at_end); - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, then_bb); merge_blocks (combo_bb, then_bb); num_true_changes++; } @@ -2131,8 +2127,6 @@ merge_if_block (struct ce_if_block * ce_info) get their addresses taken. */ if (else_bb) { - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, else_bb); merge_blocks (combo_bb, else_bb); num_true_changes++; } @@ -2188,8 +2182,6 @@ merge_if_block (struct ce_if_block * ce_info) COPY_REG_SET (combo_bb->global_live_at_end, join_bb->global_live_at_end); - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, join_bb); merge_blocks (combo_bb, join_bb); num_true_changes++; } @@ -2205,7 +2197,7 @@ merge_if_block (struct ce_if_block * ce_info) /* Remove the jump and cruft from the end of the COMBO block. */ if (join_bb != EXIT_BLOCK_PTR) - tidy_fallthru_edge (combo_bb->succ, combo_bb, join_bb); + tidy_fallthru_edge (combo_bb->succ); } num_updated_if_blocks++; @@ -2643,11 +2635,7 @@ find_cond_trap (basic_block test_bb, edge then_edge, edge else_edge) /* Delete the trap block if possible. */ remove_edge (trap_bb == then_bb ? then_edge : else_edge); if (trap_bb->pred == NULL) - { - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, trap_bb); - delete_block (trap_bb); - } + delete_basic_block (trap_bb); /* If the non-trap block and the test are now adjacent, merge them. Otherwise we must insert a direct branch. */ @@ -2829,9 +2817,7 @@ find_if_case_1 (basic_block test_bb, edge then_edge, edge else_edge) new_bb = redirect_edge_and_branch_force (FALLTHRU_EDGE (test_bb), else_bb); then_bb_index = then_bb->index; - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, then_bb); - delete_block (then_bb); + delete_basic_block (then_bb); /* Make rest of code believe that the newly created block is the THEN_BB block we removed. */ @@ -2839,8 +2825,6 @@ find_if_case_1 (basic_block test_bb, edge then_edge, edge else_edge) { new_bb->index = then_bb_index; BASIC_BLOCK (then_bb_index) = new_bb; - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - add_to_dominance_info (CDI_POST_DOMINATORS, new_bb); } /* We've possibly created jump to next insn, cleanup_cfg will solve that later. */ @@ -2909,9 +2893,7 @@ find_if_case_2 (basic_block test_bb, edge then_edge, edge else_edge) then_bb->global_live_at_start, else_bb->global_live_at_end, BITMAP_IOR); - if (dom_computed[CDI_POST_DOMINATORS] >= DOM_NO_FAST_QUERY) - delete_from_dominance_info (CDI_POST_DOMINATORS, else_bb); - delete_block (else_bb); + delete_basic_block (else_bb); num_true_changes++; num_updated_if_blocks++; |