summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-threadupdate.c
diff options
context:
space:
mode:
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-27 22:06:46 +0000
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-27 22:06:46 +0000
commit7ea47fbd9597abc284940e3d90ee2949a1058ed1 (patch)
treee30578252db88291c4c33444ffad40db62dca180 /gcc/tree-ssa-threadupdate.c
parent866adfb6e2f0f722c37513a34aa1bb796e1ddc14 (diff)
downloadgcc-7ea47fbd9597abc284940e3d90ee2949a1058ed1.tar.gz
* 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
Diffstat (limited to 'gcc/tree-ssa-threadupdate.c')
-rw-r--r--gcc/tree-ssa-threadupdate.c18
1 files changed, 8 insertions, 10 deletions
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;