diff options
author | Trevor Saunders <tsaunders@mozilla.com> | 2013-11-22 05:45:37 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2013-11-22 05:45:37 +0000 |
commit | ef062b13d7ea5c4afe434a90436ce1908ac14442 (patch) | |
tree | 15430a70b98350e546a27451e278ea2bc1aec992 /gcc/loop-unroll.c | |
parent | d41d612242e589882364ba581c586094599952e3 (diff) | |
download | gcc-ef062b13d7ea5c4afe434a90436ce1908ac14442.zip gcc-ef062b13d7ea5c4afe434a90436ce1908ac14442.tar.gz gcc-ef062b13d7ea5c4afe434a90436ce1908ac14442.tar.bz2 |
add auto_vec
2013-11-22 Trevor Saunders <tsaunders@mozilla.com>
gcc/
* vec.h (auto_vec): New class.
* cfganal.c, cfgloop.c, cgraphunit.c, config/i386/i386.c, dwarf2out.c,
function.c, genautomata.c, gimple.c, haifa-sched.c, ipa-inline.c,
ira-build.c, loop-unroll.c, omp-low.c, ree.c, trans-mem.c,
tree-call-cdce.c, tree-eh.c, tree-if-conv.c, tree-into-ssa.c,
tree-loop-distribution.c, tree-predcom.c, tree-sra.c,
tree-sssa-forwprop.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
tree-vect-loop.c, tree-vect-stmts.c: Use auto_vec and stack_vec as
appropriate instead of vec for local variables.
cp/
* parser.c, semantics.c: Change some local variables from vec to
auto_vec or stack_vec.
From-SVN: r205244
Diffstat (limited to 'gcc/loop-unroll.c')
-rw-r--r-- | gcc/loop-unroll.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c index 1240f7c..9c87167 100644 --- a/gcc/loop-unroll.c +++ b/gcc/loop-unroll.c @@ -578,7 +578,6 @@ peel_loop_completely (struct loop *loop) sbitmap wont_exit; unsigned HOST_WIDE_INT npeel; unsigned i; - vec<edge> remove_edges; edge ein; struct niter_desc *desc = get_simple_loop_desc (loop); struct opt_info *opt_info = NULL; @@ -595,8 +594,7 @@ peel_loop_completely (struct loop *loop) if (desc->noloop_assumptions) bitmap_clear_bit (wont_exit, 1); - remove_edges.create (0); - + auto_vec<edge> remove_edges; if (flag_split_ivs_in_unroller) opt_info = analyze_insns_in_loop (loop); @@ -622,7 +620,6 @@ peel_loop_completely (struct loop *loop) /* Remove the exit edges. */ FOR_EACH_VEC_ELT (remove_edges, i, ein) remove_path (ein); - remove_edges.release (); } ein = desc->in_edge; @@ -760,7 +757,6 @@ unroll_loop_constant_iterations (struct loop *loop) unsigned exit_mod; sbitmap wont_exit; unsigned i; - vec<edge> remove_edges; edge e; unsigned max_unroll = loop->lpt_decision.times; struct niter_desc *desc = get_simple_loop_desc (loop); @@ -778,7 +774,7 @@ unroll_loop_constant_iterations (struct loop *loop) wont_exit = sbitmap_alloc (max_unroll + 1); bitmap_ones (wont_exit); - remove_edges.create (0); + auto_vec<edge> remove_edges; if (flag_split_ivs_in_unroller || flag_variable_expansion_in_unroller) opt_info = analyze_insns_in_loop (loop); @@ -928,7 +924,6 @@ unroll_loop_constant_iterations (struct loop *loop) /* Remove the edges. */ FOR_EACH_VEC_ELT (remove_edges, i, e) remove_path (e); - remove_edges.release (); if (dump_file) fprintf (dump_file, @@ -1099,11 +1094,9 @@ unroll_loop_runtime_iterations (struct loop *loop) rtx old_niter, niter, init_code, branch_code, tmp; unsigned i, j, p; basic_block preheader, *body, swtch, ezc_swtch; - vec<basic_block> dom_bbs; sbitmap wont_exit; int may_exit_copy; unsigned n_peel; - vec<edge> remove_edges; edge e; bool extra_zero_check, last_may_exit; unsigned max_unroll = loop->lpt_decision.times; @@ -1117,7 +1110,7 @@ unroll_loop_runtime_iterations (struct loop *loop) opt_info = analyze_insns_in_loop (loop); /* Remember blocks whose dominators will have to be updated. */ - dom_bbs.create (0); + auto_vec<basic_block> dom_bbs; body = get_loop_body (loop); for (i = 0; i < loop->num_nodes; i++) @@ -1174,7 +1167,7 @@ unroll_loop_runtime_iterations (struct loop *loop) /* Precondition the loop. */ split_edge_and_insert (loop_preheader_edge (loop), init_code); - remove_edges.create (0); + auto_vec<edge> remove_edges; wont_exit = sbitmap_alloc (max_unroll + 2); @@ -1298,7 +1291,6 @@ unroll_loop_runtime_iterations (struct loop *loop) /* Remove the edges. */ FOR_EACH_VEC_ELT (remove_edges, i, e) remove_path (e); - remove_edges.release (); /* We must be careful when updating the number of iterations due to preconditioning and the fact that the value must be valid at entry @@ -1335,8 +1327,6 @@ unroll_loop_runtime_iterations (struct loop *loop) ";; Unrolled loop %d times, counting # of iterations " "in runtime, %i insns\n", max_unroll, num_loop_insns (loop)); - - dom_bbs.release (); } /* Decide whether to simply peel LOOP and how much. */ |