aboutsummaryrefslogtreecommitdiff
path: root/gcc/loop-unroll.c
diff options
context:
space:
mode:
authorTrevor Saunders <tsaunders@mozilla.com>2013-11-22 05:45:37 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2013-11-22 05:45:37 +0000
commitef062b13d7ea5c4afe434a90436ce1908ac14442 (patch)
tree15430a70b98350e546a27451e278ea2bc1aec992 /gcc/loop-unroll.c
parentd41d612242e589882364ba581c586094599952e3 (diff)
downloadgcc-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.c18
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. */