@@ -808,6 +808,8 @@ rest_of_handle_df_finish (void)
struct dataflow *dflow = df->problems_in_order[i];
if (dflow->problem->free_fun)
dflow->problem->free_fun ();
+ else
+ free (dflow);
}
free (df->postorder);
@@ -947,6 +947,7 @@ crc_optimization::loop_may_calculate_crc (class loop *loop)
fprintf (dump_file,
"The number of conditional "
"branches in the loop isn't 2.\n");
+ free (loop_bbs);
return false;
}
@@ -977,8 +978,11 @@ crc_optimization::loop_may_calculate_crc (class loop *loop)
return true;
}
- if (++checked_xor_count == 2)
+ if (++checked_xor_count == 2)
+ {
+ free (loop_bbs);
return false;
+ }
}
}
}
@@ -1757,7 +1757,7 @@ expand_vector_conversion (gimple_stmt_iterator *gsi)
auto_vec<std::pair<tree, tree_code> > converts;
if (supportable_indirect_convert_operation (code,
ret_type, arg_type,
- &converts,
+ converts,
arg))
{
new_rhs = arg;
@@ -5583,7 +5583,7 @@ vectorizable_conversion (vec_info *vinfo,
scalar_mode lhs_mode = SCALAR_TYPE_MODE (lhs_type);
scalar_mode rhs_mode = SCALAR_TYPE_MODE (rhs_type);
opt_scalar_mode rhs_mode_iter;
- vec<std::pair<tree, tree_code> > converts = vNULL;
+ auto_vec<std::pair<tree, tree_code> > converts;
/* Supportable by target? */
switch (modifier)
@@ -5597,7 +5597,7 @@ vectorizable_conversion (vec_info *vinfo,
if (supportable_indirect_convert_operation (code,
vectype_out,
vectype_in,
- &converts,
+ converts,
op0))
{
gcc_assert (converts.length () <= 2);
@@ -15170,7 +15170,7 @@ bool
supportable_indirect_convert_operation (code_helper code,
tree vectype_out,
tree vectype_in,
- vec<std::pair<tree, tree_code> > *converts,
+ vec<std::pair<tree, tree_code> > &converts,
tree op0)
{
bool found_mode = false;
@@ -15187,7 +15187,7 @@ supportable_indirect_convert_operation (code_helper code,
vectype_in,
&tc1))
{
- converts->safe_push (std::make_pair (vectype_out, tc1));
+ converts.safe_push (std::make_pair (vectype_out, tc1));
return true;
}
@@ -15278,9 +15278,9 @@ supportable_indirect_convert_operation (code_helper code,
if (found_mode)
{
- converts->safe_push (std::make_pair (cvt_type, tc2));
+ converts.safe_push (std::make_pair (cvt_type, tc2));
if (TYPE_MODE (cvt_type) != TYPE_MODE (vectype_out))
- converts->safe_push (std::make_pair (vectype_out, tc1));
+ converts.safe_push (std::make_pair (vectype_out, tc1));
return true;
}
}
@@ -2338,7 +2338,7 @@ extern bool supportable_narrowing_operation (code_helper, tree, tree,
vec<tree> *);
extern bool supportable_indirect_convert_operation (code_helper,
tree, tree,
- vec<std::pair<tree, tree_code> > *,
+ vec<std::pair<tree, tree_code> > &,
tree = NULL_TREE);
extern int compare_step_with_zero (vec_info *, stmt_vec_info);