This replaces the three, gimple_stmt_iterator, bool (before/after)
and iterator update arguments by a ginsert_iterator argument
throughout the gimple_build API.
* gimple-fold.h (..):...
* gimple-fold.cc (...):...
---
gcc/gimple-fold.cc | 122 ++++++++++++++-----------------------------
gcc/gimple-fold.h | 126 +++++++++++++++++----------------------------
2 files changed, 86 insertions(+), 162 deletions(-)
diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc
index fdb9b419766..cf2486a37a7 100644
--- a/gcc/gimple-fold.cc
+++ b/gcc/gimple-fold.cc
@@ -1504,12 +1504,13 @@ gimple_fold_builtin_memset (gimple_stmt_iterator *gsi,
tree c, tree len)
if (TYPE_VOLATILE (ptype))
etype = build_qualified_type (etype, TYPE_QUAL_VOLATILE);
+ auto gii = ginsert_iterator::before (*gsi);
location_t loc = gimple_location (stmt);
tree cval_tree;
if (TREE_CODE (c) == INTEGER_CST)
cval_tree = fold_convert (etype, c);
else
- cval_tree = gimple_convert (gsi, true, GSI_SAME_STMT, loc, etype, c);
+ cval_tree = gimple_convert (&gii, loc, etype, c);
/* Build accesses at offset zero with a ref-all character type. */
tree off0
@@ -1528,11 +1529,10 @@ gimple_fold_builtin_memset (gimple_stmt_iterator *gsi,
tree c, tree len)
return true;
}
- gsi_insert_before (gsi, store, GSI_SAME_STMT);
+ gii.insert (store);
tree ret = dest;
if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (dest)))
- ret = gimple_convert (gsi, true, GSI_SAME_STMT, loc,
- TREE_TYPE (lhs), dest);
+ ret = gimple_convert (&gii, loc, TREE_TYPE (lhs), dest);
gimple *asgn = gimple_build_assign (lhs, ret);
gsi_replace (gsi, asgn, false);
@@ -11110,28 +11110,6 @@ gimple_build_valueize (tree op)
return NULL_TREE;
}
-/* Helper for gimple_build to perform the final insertion of stmts on SEQ. */
-
-static inline void
-gimple_build_insert_seq (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
- gimple_seq seq)
-{
- if (before)
- {
- if (gsi->bb)
- gsi_insert_seq_before (gsi, seq, update);
- else
- gsi_insert_seq_before_without_update (gsi, seq, update);
- }
- else
- {
- if (gsi->bb)
- gsi_insert_seq_after (gsi, seq, update);
- else
- gsi_insert_seq_after_without_update (gsi, seq, update);
- }
-}
/* Build the expression CODE OP0 of type TYPE with location LOC,
simplifying it first if possible. Returns the built
@@ -11144,8 +11122,7 @@ gimple_build_insert_seq (gimple_stmt_iterator *gsi,
indicating they belong to the currently building sequence. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, enum tree_code code, tree type, tree op0)
{
gimple_seq seq = NULL;
@@ -11165,7 +11142,7 @@ gimple_build (gimple_stmt_iterator *gsi,
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
}
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11175,8 +11152,7 @@ gimple_build (gimple_stmt_iterator *gsi,
and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, enum tree_code code, tree type,
tree op0, tree op1)
{
@@ -11191,7 +11167,7 @@ gimple_build (gimple_stmt_iterator *gsi,
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
}
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11201,8 +11177,7 @@ gimple_build (gimple_stmt_iterator *gsi,
and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, enum tree_code code, tree type,
tree op0, tree op1, tree op2)
{
@@ -11223,7 +11198,7 @@ gimple_build (gimple_stmt_iterator *gsi,
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
}
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11233,8 +11208,7 @@ gimple_build (gimple_stmt_iterator *gsi,
and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, combined_fn fn, tree type)
{
tree res = NULL_TREE;
@@ -11254,7 +11228,7 @@ gimple_build (gimple_stmt_iterator *gsi,
}
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11265,8 +11239,7 @@ gimple_build (gimple_stmt_iterator *gsi,
statements at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, combined_fn fn,
tree type, tree arg0)
{
@@ -11290,7 +11263,7 @@ gimple_build (gimple_stmt_iterator *gsi,
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
}
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11301,8 +11274,7 @@ gimple_build (gimple_stmt_iterator *gsi,
statements at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, combined_fn fn,
tree type, tree arg0, tree arg1)
{
@@ -11327,7 +11299,7 @@ gimple_build (gimple_stmt_iterator *gsi,
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
}
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11338,8 +11310,7 @@ gimple_build (gimple_stmt_iterator *gsi,
statements at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, combined_fn fn,
tree type, tree arg0, tree arg1, tree arg2)
{
@@ -11365,7 +11336,7 @@ gimple_build (gimple_stmt_iterator *gsi,
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
}
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert (seq);
return res;
}
@@ -11375,13 +11346,12 @@ gimple_build (gimple_stmt_iterator *gsi,
statements at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, code_helper code, tree type, tree op0)
{
if (code.is_tree_code ())
- return gimple_build (gsi, before, update, loc, tree_code (code), type,
op0);
- return gimple_build (gsi, before, update, loc, combined_fn (code), type,
op0);
+ return gimple_build (gsi, loc, tree_code (code), type, op0);
+ return gimple_build (gsi, loc, combined_fn (code), type, op0);
}
/* Build CODE (OP0, OP1) with a result of type TYPE (or no result if TYPE is
@@ -11390,15 +11360,12 @@ gimple_build (gimple_stmt_iterator *gsi,
statements at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, code_helper code, tree type, tree op0, tree op1)
{
if (code.is_tree_code ())
- return gimple_build (gsi, before, update,
- loc, tree_code (code), type, op0, op1);
- return gimple_build (gsi, before, update,
- loc, combined_fn (code), type, op0, op1);
+ return gimple_build (gsi, loc, tree_code (code), type, op0, op1);
+ return gimple_build (gsi, loc, combined_fn (code), type, op0, op1);
}
/* Build CODE (OP0, OP1, OP2) with a result of type TYPE (or no result if TYPE
@@ -11407,16 +11374,13 @@ gimple_build (gimple_stmt_iterator *gsi,
statements at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build (ginsert_iterator *gsi,
location_t loc, code_helper code,
tree type, tree op0, tree op1, tree op2)
{
if (code.is_tree_code ())
- return gimple_build (gsi, before, update,
- loc, tree_code (code), type, op0, op1, op2);
- return gimple_build (gsi, before, update,
- loc, combined_fn (code), type, op0, op1, op2);
+ return gimple_build (gsi, loc, tree_code (code), type, op0, op1, op2);
+ return gimple_build (gsi, loc, combined_fn (code), type, op0, op1, op2);
}
/* Build the conversion (TYPE) OP with a result of type TYPE
@@ -11426,13 +11390,12 @@ gimple_build (gimple_stmt_iterator *gsi,
at GSI honoring BEFORE and UPDATE. */
tree
-gimple_convert (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_convert (ginsert_iterator *gsi,
location_t loc, tree type, tree op)
{
if (useless_type_conversion_p (type, TREE_TYPE (op)))
return op;
- return gimple_build (gsi, before, update, loc, NOP_EXPR, type, op);
+ return gimple_build (gsi, loc, NOP_EXPR, type, op);
}
/* Build the conversion (ptrofftype) OP with a result of a type
@@ -11442,13 +11405,12 @@ gimple_convert (gimple_stmt_iterator *gsi,
at GSI honoring BEFORE and UPDATE. */
tree
-gimple_convert_to_ptrofftype (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_convert_to_ptrofftype (ginsert_iterator *gsi,
location_t loc, tree op)
{
if (ptrofftype_p (TREE_TYPE (op)))
return op;
- return gimple_convert (gsi, before, update, loc, sizetype, op);
+ return gimple_convert (gsi, loc, sizetype, op);
}
/* Build a vector of type TYPE in which each element has the value OP.
@@ -11456,14 +11418,12 @@ gimple_convert_to_ptrofftype (gimple_stmt_iterator
*gsi,
at GSI honoring BEFORE and UPDATE. */
tree
-gimple_build_vector_from_val (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build_vector_from_val (ginsert_iterator *gsi,
location_t loc, tree type, tree op)
{
if (!TYPE_VECTOR_SUBPARTS (type).is_constant ()
&& !CONSTANT_CLASS_P (op))
- return gimple_build (gsi, before, update,
- loc, VEC_DUPLICATE_EXPR, type, op);
+ return gimple_build (gsi, loc, VEC_DUPLICATE_EXPR, type, op);
tree res, vec = build_vector_from_val (type, op);
if (is_gimple_val (vec))
@@ -11476,7 +11436,7 @@ gimple_build_vector_from_val (gimple_stmt_iterator *gsi,
gimple *stmt = gimple_build_assign (res, vec);
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
@@ -11490,8 +11450,7 @@ gimple_build_vector_from_val (gimple_stmt_iterator *gsi,
is known to be constant should use BUILDER->build () directly. */
tree
-gimple_build_vector (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build_vector (ginsert_iterator *gsi,
location_t loc, tree_vector_builder *builder)
{
gcc_assert (builder->nelts_per_pattern () <= 2);
@@ -11515,7 +11474,7 @@ gimple_build_vector (gimple_stmt_iterator *gsi,
gimple *stmt = gimple_build_assign (res, build_constructor (type, v));
gimple_set_location (stmt, loc);
gimple_seq_add_stmt_without_update (&seq, stmt);
- gimple_build_insert_seq (gsi, before, update, seq);
+ gsi->insert_seq (seq);
return res;
}
return builder->build ();
@@ -11527,8 +11486,7 @@ gimple_build_vector (gimple_stmt_iterator *gsi,
Return the tree node representing this size, it is of TREE_TYPE TYPE. */
tree
-gimple_build_round_up (gimple_stmt_iterator *gsi,
- bool before, gsi_iterator_update update,
+gimple_build_round_up (ginsert_iterator *gsi,
location_t loc, tree type,
tree old_size, unsigned HOST_WIDE_INT align)
{
@@ -11536,12 +11494,10 @@ gimple_build_round_up (gimple_stmt_iterator *gsi,
/* tree new_size = (old_size + tg_mask) & ~tg_mask; */
gcc_assert (INTEGRAL_TYPE_P (type));
tree tree_mask = build_int_cst (type, tg_mask);
- tree oversize = gimple_build (gsi, before, update,
- loc, PLUS_EXPR, type, old_size, tree_mask);
+ tree oversize = gimple_build (gsi, loc, PLUS_EXPR, type, old_size,
tree_mask);
tree mask = build_int_cst (type, -align);
- return gimple_build (gsi, before, update,
- loc, BIT_AND_EXPR, type, oversize, mask);
+ return gimple_build (gsi, loc, BIT_AND_EXPR, type, oversize, mask);
}
/* Return true if the result of assignment STMT is known to be non-negative.
diff --git a/gcc/gimple-fold.h b/gcc/gimple-fold.h
index f1853560779..f4feef3cb16 100644
--- a/gcc/gimple-fold.h
+++ b/gcc/gimple-fold.h
@@ -71,14 +71,11 @@ extern void gsi_replace_with_seq_vops (gimple_stmt_iterator
*, gimple_seq);
/* gimple_build, functionally matching fold_buildN, outputs stmts
int the provided sequence, matching and simplifying them on-the-fly.
Supposed to replace force_gimple_operand (fold_buildN (...), ...). */
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, enum tree_code, tree, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, enum tree_code, tree, tree, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, enum tree_code, tree, tree, tree, tree);
template<class ...Args>
inline tree
@@ -87,9 +84,8 @@ gimple_build (gimple_seq *seq, location_t loc,
{
static_assert (sizeof...(ops) > 0 && sizeof...(ops) <= 3,
"Number of operands must be from one to three");
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build (&gsi, false, GSI_CONTINUE_LINKING,
- loc, code, type, ops...);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build (&gsi, loc, code, type, ops...);
}
template<class ...Args>
inline tree
@@ -97,22 +93,17 @@ gimple_build (gimple_seq *seq, enum tree_code code, tree
type, Args ...ops)
{
static_assert (sizeof...(ops) > 0 && sizeof...(ops) <= 3,
"Number of operands must be from one to three");
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, code, type, ops...);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build (&gsi, UNKNOWN_LOCATION, code, type, ops...);
}
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, combined_fn, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *
location_t, combined_fn, tree, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, combined_fn, tree, tree, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, combined_fn, tree, tree, tree, tree);
template<class ...Args>
inline tree
@@ -121,9 +112,8 @@ gimple_build (gimple_seq *seq, location_t loc,
{
static_assert (sizeof...(args) < 4,
"Number of arguments must be less than four");
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build (&gsi, false, GSI_CONTINUE_LINKING,
- loc, fn, type, args...);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build (&gsi, loc, fn, type, args...);
}
template<class ...Args>
inline tree
@@ -131,19 +121,15 @@ gimple_build (gimple_seq *seq, combined_fn fn, tree type,
Args ...args)
{
static_assert (sizeof...(args) < 4,
"Number of arguments must be less than four");
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, fn, type, args...);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build (&gsi, UNKNOWN_LOCATION, fn, type, args...);
}
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, code_helper, tree, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, code_helper, tree, tree, tree);
-extern tree gimple_build (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build (ginsert_iterator *,
location_t, code_helper, tree, tree, tree, tree);
template<class ...Args>
@@ -153,9 +139,8 @@ gimple_build (gimple_seq *seq, location_t loc,
{
static_assert (sizeof...(ops) < 4,
"Number of operands must be less than four");
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build (&gsi, false, GSI_CONTINUE_LINKING,
- loc, code, type, ops...);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build (&gsi, loc, code, type, ops...);
}
template<class ...Args>
inline tree
@@ -164,104 +149,87 @@ gimple_build (gimple_seq *seq,
{
static_assert (sizeof...(ops) < 4,
"Number of operands must be less than four");
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, code, type, ops...);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build (&gsi, UNKNOWN_LOCATION, code, type, ops...);
}
-extern tree gimple_convert (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
- location_t, tree, tree);
+extern tree gimple_convert (ginsert_iterator *, location_t, tree, tree);
inline tree
gimple_convert (gimple_seq *seq, location_t loc, tree type, tree op)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_convert (&gsi, false, GSI_CONTINUE_LINKING, loc, type, op);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_convert (&gsi, loc, type, op);
}
inline tree
gimple_convert (gimple_seq *seq, tree type, tree op)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_convert (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, type, op);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_convert (&gsi, UNKNOWN_LOCATION, type, op);
}
-extern tree gimple_convert_to_ptrofftype (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
- location_t, tree);
+extern tree gimple_convert_to_ptrofftype (ginsert_iterator *, location_t,
tree);
inline tree
gimple_convert_to_ptrofftype (gimple_seq *seq, location_t loc, tree op)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_convert_to_ptrofftype (&gsi, false, GSI_CONTINUE_LINKING,
- loc, op);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_convert_to_ptrofftype (&gsi, loc, op);
}
inline tree
gimple_convert_to_ptrofftype (gimple_seq *seq, tree op)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_convert_to_ptrofftype (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, op);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_convert_to_ptrofftype (&gsi, UNKNOWN_LOCATION, op);
}
-extern tree gimple_build_vector_from_val (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build_vector_from_val (ginsert_iterator *,
location_t, tree, tree);
inline tree
gimple_build_vector_from_val (gimple_seq *seq, location_t loc,
tree type, tree op)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build_vector_from_val (&gsi, false, GSI_CONTINUE_LINKING,
- loc, type, op);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build_vector_from_val (&gsi, loc, type, op);
}
inline tree
gimple_build_vector_from_val (gimple_seq *seq, tree type, tree op)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build_vector_from_val (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, type, op);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build_vector_from_val (&gsi, UNKNOWN_LOCATION, type, op);
}
class tree_vector_builder;
-extern tree gimple_build_vector (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build_vector (ginsert_iterator *,
location_t, tree_vector_builder *);
inline tree
gimple_build_vector (gimple_seq *seq, location_t loc,
tree_vector_builder *builder)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build_vector (&gsi, false, GSI_CONTINUE_LINKING,
- loc, builder);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build_vector (&gsi, loc, builder);
}
inline tree
gimple_build_vector (gimple_seq *seq, tree_vector_builder *builder)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build_vector (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, builder);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build_vector (&gsi, UNKNOWN_LOCATION, builder);
}
-extern tree gimple_build_round_up (gimple_stmt_iterator *, bool,
- enum gsi_iterator_update,
+extern tree gimple_build_round_up (ginsert_iterator *,
location_t, tree, tree,
unsigned HOST_WIDE_INT);
inline tree
gimple_build_round_up (gimple_seq *seq, location_t loc,
tree type, tree old_size, unsigned HOST_WIDE_INT align)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build_round_up (&gsi, false, GSI_CONTINUE_LINKING,
- loc, type, old_size, align);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build_round_up (&gsi, loc, type, old_size, align);
}
inline tree
gimple_build_round_up (gimple_seq *seq, tree type, tree old_size,
unsigned HOST_WIDE_INT align)
{
- gimple_stmt_iterator gsi = gsi_last (*seq);
- return gimple_build_round_up (&gsi, false, GSI_CONTINUE_LINKING,
- UNKNOWN_LOCATION, type, old_size, align);
+ auto gsi = ginsert_iterator::append (*seq);
+ return gimple_build_round_up (&gsi, UNKNOWN_LOCATION, type, old_size, align);
}
extern bool gimple_stmt_nonnegative_p (gimple *, int = 0);
--
2.51.0