aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-loop-interchange.cc10
-rw-r--r--gcc/gimple-loop-jam.c6
-rw-r--r--gcc/tree-ssa-loop-im.c1
-rw-r--r--gcc/tree-vect-stmts.c13
4 files changed, 11 insertions, 19 deletions
diff --git a/gcc/gimple-loop-interchange.cc b/gcc/gimple-loop-interchange.cc
index a1dadd8..f45b936 100644
--- a/gcc/gimple-loop-interchange.cc
+++ b/gcc/gimple-loop-interchange.cc
@@ -1940,7 +1940,10 @@ prepare_data_references (class loop *loop, vec<data_reference_p> *datarefs)
delete bb_refs;
}
else if (bb_refs->is_empty ())
- delete bb_refs;
+ {
+ bb_refs->release ();
+ delete bb_refs;
+ }
else
bb->aux = bb_refs;
}
@@ -1954,7 +1957,10 @@ prepare_data_references (class loop *loop, vec<data_reference_p> *datarefs)
bb_refs = (vec<data_reference_p> *) bb->aux;
if (loop_nest && flow_bb_inside_loop_p (loop_nest, bb))
- datarefs->safe_splice (*bb_refs);
+ {
+ datarefs->safe_splice (*bb_refs);
+ bb_refs->release ();
+ }
else
free_data_refs (*bb_refs);
diff --git a/gcc/gimple-loop-jam.c b/gcc/gimple-loop-jam.c
index 485f5a9..69dbaeb 100644
--- a/gcc/gimple-loop-jam.c
+++ b/gcc/gimple-loop-jam.c
@@ -505,15 +505,13 @@ tree_loop_unroll_and_jam (void)
if (!unroll_jam_possible_p (outer, loop))
continue;
- vec<data_reference_p> datarefs;
- vec<ddr_p> dependences;
+ vec<data_reference_p> datarefs = vNULL;
+ vec<ddr_p> dependences = vNULL;
unsigned unroll_factor, profit_unroll, removed;
class tree_niter_desc desc;
bool unroll = false;
auto_vec<loop_p, 3> loop_nest;
- dependences.create (10);
- datarefs.create (10);
if (!compute_data_dependences_for_loop (outer, true, &loop_nest,
&datarefs, &dependences))
{
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 445b93f..8034cf6 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -2508,6 +2508,7 @@ hoist_memory_references (class loop *loop, bitmap mem_refs,
if (res != 1)
{
bitmap_copy (refs_not_supported, mem_refs);
+ seq.release ();
break;
}
sms.safe_push (std::make_pair (e, seq));
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index f180ced..5eb7b2d 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -10085,14 +10085,6 @@ vectorizable_condition (vec_info *vinfo,
/* Transform. */
- if (!slp_node)
- {
- vec_oprnds0.create (1);
- vec_oprnds1.create (1);
- vec_oprnds2.create (1);
- vec_oprnds3.create (1);
- }
-
/* Handle def. */
scalar_dest = gimple_assign_lhs (stmt);
if (reduction_type != EXTRACT_LAST_REDUCTION)
@@ -10480,11 +10472,6 @@ vectorizable_comparison (vec_info *vinfo,
}
/* Transform. */
- if (!slp_node)
- {
- vec_oprnds0.create (1);
- vec_oprnds1.create (1);
- }
/* Handle def. */
lhs = gimple_assign_lhs (stmt);