From 7ea47fbd9597abc284940e3d90ee2949a1058ed1 Mon Sep 17 00:00:00 2001 From: kazu Date: Fri, 27 May 2005 22:06:46 +0000 Subject: * basic-block.h (basic_block_def): Add phi_nodes and predictions. Remove tree_annotations. * predict.c (tree_predicted_by_p, tree_predict_edge, combine_predictions_for_bb): Adjust references to predictions. * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call create_block_annotation. (create_block_annotation, free_blocks_annotatios, clear_blocks_annotations): Remove. (dump_cfg_stats): Don't print out the memory spent on bb_ann_d. (delete_tree_cfg_annotations): Don't call free_blocks_annotations. * tree-flow-inline.h (bb_ann): Remove. (phi_nodes, set_phi_nodes): Update references to phi_nodes. * tree-flow.h (bb_ann_d): Remove. * tree-if-conv.c (process_phi_nodes): Update a reference to phi_nodes. * tree-phinodes.c (reserve_phi_args_for_new_edge, create_phi_node, remove_phi_node): Likewise. * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann. * tree-ssa-dom.c (threaded_blocks): New. (tree_ssa_dominator_optimize): Initialize, clear, and free threaded_blocks. Update a call to thread_through_all_blocks. (thread_across_edge): Use threaded_blocks instead of setting incoming_edge_threaded. * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take a bitmap of blocks that are threaded through. * tree.h: Move the prototype of threaded_through_blocks to tree-flow.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100279 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-ssa-threadupdate.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'gcc/tree-ssa-threadupdate.c') diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index e72598d830e..f6bf1db7324 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -802,22 +802,20 @@ thread_block (basic_block bb) Returns true if one or more edges were threaded, false otherwise. */ bool -thread_through_all_blocks (void) +thread_through_all_blocks (bitmap threaded_blocks) { - basic_block bb; bool retval = false; + unsigned int i; + bitmap_iterator bi; rediscover_loops_after_threading = false; - FOR_EACH_BB (bb) + EXECUTE_IF_SET_IN_BITMAP (threaded_blocks, 0, i, bi) { - if (bb_ann (bb)->incoming_edge_threaded - && EDGE_COUNT (bb->preds) > 0) - { - retval |= thread_block (bb); - bb_ann (bb)->incoming_edge_threaded = false; - - } + basic_block bb = BASIC_BLOCK (i); + + if (EDGE_COUNT (bb->preds) > 0) + retval |= thread_block (bb); } return retval; -- cgit v1.2.1