diff options
author | Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | 2016-07-26 10:44:08 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2016-07-26 10:44:08 +0000 |
commit | 7ba9e72de95e7eece69bfff744df14b866280f9d (patch) | |
tree | ff74117885135e87c9fc9ad721f0180a6471bafc /gcc/sched-rgn.c | |
parent | 62e2078514e307bc1b9fecff29977a5476fc7c45 (diff) | |
download | gcc-7ba9e72de95e7eece69bfff744df14b866280f9d.zip gcc-7ba9e72de95e7eece69bfff744df14b866280f9d.tar.gz gcc-7ba9e72de95e7eece69bfff744df14b866280f9d.tar.bz2 |
use auto_sbitmap in various places
gcc/ChangeLog:
2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bt-load.c (compute_out): Use auto_sbitmap class.
(link_btr_uses): Likewise.
* cfganal.c (mark_dfs_back_edges): Likewise.
(post_order_compute): Likewise.
(inverted_post_order_compute): Likewise.
(pre_and_rev_post_order_compute_fn): Likewise.
(single_pred_before_succ_order): Likewise.
* cfgexpand.c (pass_expand::execute): Likewise.
* cfgloop.c (verify_loop_structure): Likewise.
* cfgloopmanip.c (fix_bb_placements): Likewise.
(remove_path): Likewise.
(update_dominators_in_loop): Likewise.
* cfgrtl.c (break_superblocks): Likewise.
* ddg.c (check_sccs): Likewise.
(create_ddg_all_sccs): Likewise.
* df-core.c (df_worklist_dataflow): Likewise.
* dse.c (dse_step3): Likewise.
* except.c (eh_region_outermost): Likewise.
* function.c (thread_prologue_and_epilogue_insns): Likewise.
* gcse.c (prune_expressions): Likewise.
(prune_insertions_deletions): Likewise.
* gimple-ssa-backprop.c (backprop::~backprop): Likewise.
* graph.c (draw_cfg_nodes_no_loops): Likewise.
* ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
* lcm.c (compute_earliest): Likewise.
(compute_farthest): Likewise.
* loop-unroll.c (unroll_loop_constant_iterations): Likewise.
(unroll_loop_runtime_iterations): Likewise.
(unroll_loop_stupid): Likewise.
* lower-subreg.c (decompose_multiword_subregs): Likewise.
* lra-lives.c: Likewise.
* lra.c (lra): Likewise.
* modulo-sched.c (schedule_reg_moves): Likewise.
(optimize_sc): Likewise.
(get_sched_window): Likewise.
(sms_schedule_by_order): Likewise.
(check_nodes_order): Likewise.
(order_nodes_of_sccs): Likewise.
(order_nodes_in_scc): Likewise.
* recog.c (split_all_insns): Likewise.
* regcprop.c (pass_cprop_hardreg::execute): Likewise.
* reload1.c (reload): Likewise.
* sched-rgn.c (haifa_find_rgns): Likewise.
(split_edges): Likewise.
(compute_trg_info): Likewise.
* sel-sched.c (init_seqno): Likewise.
* store-motion.c (remove_reachable_equiv_notes): Likewise.
* tree-into-ssa.c (update_ssa): Likewise.
* tree-ssa-live.c (live_worklist): Likewise.
* tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
* Likewise.
(try_peel_loop): Likewise.
* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
* Likewise.
* tree-ssa-pre.c (compute_antic): Likewise.
* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
* tree-stdarg.c (reachable_at_most_once): Likewise.
* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
* var-tracking.c (vt_find_locations): Likewise.
From-SVN: r238748
Diffstat (limited to 'gcc/sched-rgn.c')
-rw-r--r-- | gcc/sched-rgn.c | 36 |
1 files changed, 10 insertions, 26 deletions
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c index fa662ff..bfb8d8f 100644 --- a/gcc/sched-rgn.c +++ b/gcc/sched-rgn.c @@ -623,18 +623,6 @@ haifa_find_rgns (void) int too_large_failure; basic_block bb; - /* Note if a block is a natural loop header. */ - sbitmap header; - - /* Note if a block is a natural inner loop header. */ - sbitmap inner; - - /* Note if a block is in the block queue. */ - sbitmap in_queue; - - /* Note if a block is in the block queue. */ - sbitmap in_stack; - /* Perform a DFS traversal of the cfg. Identify loop headers, inner loops and a mapping from block to its loop header (if the block is contained in a loop, else -1). @@ -649,16 +637,20 @@ haifa_find_rgns (void) dfs_nr = XCNEWVEC (int, last_basic_block_for_fn (cfun)); stack = XNEWVEC (edge_iterator, n_edges_for_fn (cfun)); - inner = sbitmap_alloc (last_basic_block_for_fn (cfun)); + /* Note if a block is a natural inner loop header. */ + auto_sbitmap inner (last_basic_block_for_fn (cfun)); bitmap_ones (inner); - header = sbitmap_alloc (last_basic_block_for_fn (cfun)); + /* Note if a block is a natural loop header. */ + auto_sbitmap header (last_basic_block_for_fn (cfun)); bitmap_clear (header); - in_queue = sbitmap_alloc (last_basic_block_for_fn (cfun)); + /* Note if a block is in the block queue. */ + auto_sbitmap in_queue (last_basic_block_for_fn (cfun)); bitmap_clear (in_queue); - in_stack = sbitmap_alloc (last_basic_block_for_fn (cfun)); + /* Note if a block is in the block queue. */ + auto_sbitmap in_stack (last_basic_block_for_fn (cfun)); bitmap_clear (in_stack); for (i = 0; i < last_basic_block_for_fn (cfun); i++) @@ -1070,10 +1062,6 @@ haifa_find_rgns (void) free (max_hdr); free (degree); free (stack); - sbitmap_free (header); - sbitmap_free (inner); - sbitmap_free (in_queue); - sbitmap_free (in_stack); } @@ -1477,12 +1465,11 @@ compute_dom_prob_ps (int bb) static void split_edges (int bb_src, int bb_trg, edgelst *bl) { - sbitmap src = sbitmap_alloc (SBITMAP_SIZE (pot_split[bb_src])); + auto_sbitmap src (SBITMAP_SIZE (pot_split[bb_src])); bitmap_copy (src, pot_split[bb_src]); bitmap_and_compl (src, src, pot_split[bb_trg]); extract_edgelst (src, bl); - sbitmap_free (src); } /* Find the valid candidate-source-blocks for the target block TRG, compute @@ -1496,7 +1483,6 @@ compute_trg_info (int trg) edgelst el = { NULL, 0 }; int i, j, k, update_idx; basic_block block; - sbitmap visited; edge_iterator ei; edge e; @@ -1519,7 +1505,7 @@ compute_trg_info (int trg) sp->is_speculative = 0; sp->src_prob = REG_BR_PROB_BASE; - visited = sbitmap_alloc (last_basic_block_for_fn (cfun)); + auto_sbitmap visited (last_basic_block_for_fn (cfun)); for (i = trg + 1; i < current_nr_blocks; i++) { @@ -1595,8 +1581,6 @@ compute_trg_info (int trg) sp->src_prob = 0; } } - - sbitmap_free (visited); } /* Free the computed target info. */ |