aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-fold.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2017-12-07 18:41:59 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2017-12-07 18:41:59 +0000
commitabe73c3d32b68809628eaa3266bf98cb7352851c (patch)
treef651282f43b411a678d09f3e8beca08fb288a564 /gcc/gimple-fold.h
parentb3def403fa7ae89679468b8f986cab7361c1034d (diff)
downloadgcc-abe73c3d32b68809628eaa3266bf98cb7352851c.zip
gcc-abe73c3d32b68809628eaa3266bf98cb7352851c.tar.gz
gcc-abe73c3d32b68809628eaa3266bf98cb7352851c.tar.bz2
Make gimple_build_vector take a tree_vector_builder
This patch changes gimple_build_vector so that it takes a tree_vector_builder instead of a size and a vector of trees. 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> gcc/ * vector-builder.h (vector_builder::derived): New const overload. (vector_builder::elt): New function. * tree-vector-builder.h (tree_vector_builder::type): New function. (tree_vector_builder::apply_step): Declare. * tree-vector-builder.c (tree_vector_builder::apply_step): New function. * gimple-fold.h (tree_vector_builder): Declare. (gimple_build_vector): Take a tree_vector_builder instead of a type and vector of elements. * gimple-fold.c (gimple_build_vector): Likewise. * tree-vect-loop.c (get_initial_def_for_reduction): Update call accordingly. (get_initial_defs_for_reduction): Likewise. (vectorizable_induction): Likewise. From-SVN: r255478
Diffstat (limited to 'gcc/gimple-fold.h')
-rw-r--r--gcc/gimple-fold.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/gimple-fold.h b/gcc/gimple-fold.h
index ddbc4f0..83babfa 100644
--- a/gcc/gimple-fold.h
+++ b/gcc/gimple-fold.h
@@ -135,11 +135,13 @@ gimple_build_vector_from_val (gimple_seq *seq, tree type, tree op)
return gimple_build_vector_from_val (seq, UNKNOWN_LOCATION, type, op);
}
-extern tree gimple_build_vector (gimple_seq *, location_t, tree, vec<tree>);
+class tree_vector_builder;
+extern tree gimple_build_vector (gimple_seq *, location_t,
+ tree_vector_builder *);
inline tree
-gimple_build_vector (gimple_seq *seq, tree type, vec<tree> elts)
+gimple_build_vector (gimple_seq *seq, tree_vector_builder *builder)
{
- return gimple_build_vector (seq, UNKNOWN_LOCATION, type, elts);
+ return gimple_build_vector (seq, UNKNOWN_LOCATION, builder);
}
extern bool gimple_stmt_nonnegative_warnv_p (gimple *, bool *, int = 0);