aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-04-20 12:49:58 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-04-20 12:49:58 +0000
commit545cd7ecc81767cb03ccf4bd818eea4bab352083 (patch)
tree6ecda2e36f59655af88a3d7c0521fb193010349e /gcc
parentdd39022b9e5f1272c7451fc0feadc39c7c858c17 (diff)
downloadgcc-545cd7ecc81767cb03ccf4bd818eea4bab352083.zip
gcc-545cd7ecc81767cb03ccf4bd818eea4bab352083.tar.gz
gcc-545cd7ecc81767cb03ccf4bd818eea4bab352083.tar.bz2
gimple-match.h (maybe_build_generic_op): Adjust prototype.
2016-04-20 Richard Biener <rguenther@suse.de> * gimple-match.h (maybe_build_generic_op): Adjust prototype. * gimple-match-head.c (maybe_build_generic_op): Pass all ops by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF. (maybe_push_res_to_seq): Adjust. * gimple-fold.c (maybe_build_generic_op): Likewise. From-SVN: r235274
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/gimple-fold.c3
-rw-r--r--gcc/gimple-match-head.c10
-rw-r--r--gcc/gimple-match.h2
4 files changed, 15 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1e8a33b..e61f98c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2016-04-20 Richard Biener <rguenther@suse.de>
+
+ * gimple-match.h (maybe_build_generic_op): Adjust prototype.
+ * gimple-match-head.c (maybe_build_generic_op): Pass all ops
+ by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
+ (maybe_push_res_to_seq): Adjust.
+ * gimple-fold.c (maybe_build_generic_op): Likewise.
+
2016-04-20 Marek Polacek <polacek@redhat.com>
* tree-if-conv.c (is_false_predicate): For NULL_TREE return false
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index eb130d0..6cd0a4b 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -3376,8 +3376,7 @@ replace_stmt_with_simplification (gimple_stmt_iterator *gsi,
|| gimple_num_ops (stmt) > get_gimple_rhs_num_ops (rcode))
{
maybe_build_generic_op (rcode,
- TREE_TYPE (gimple_assign_lhs (stmt)),
- &ops[0], ops[1], ops[2]);
+ TREE_TYPE (gimple_assign_lhs (stmt)), ops);
gimple_assign_set_rhs_with_ops (gsi, rcode, ops[0], ops[1], ops[2]);
if (dump_file && (dump_flags & TDF_DETAILS))
{
diff --git a/gcc/gimple-match-head.c b/gcc/gimple-match-head.c
index c86a4ff..2beadbc 100644
--- a/gcc/gimple-match-head.c
+++ b/gcc/gimple-match-head.c
@@ -233,18 +233,18 @@ gimple_resimplify3 (gimple_seq *seq,
a GENERIC tree for that expression into *OP0. */
void
-maybe_build_generic_op (enum tree_code code, tree type,
- tree *op0, tree op1, tree op2)
+maybe_build_generic_op (enum tree_code code, tree type, tree *ops)
{
switch (code)
{
case REALPART_EXPR:
case IMAGPART_EXPR:
case VIEW_CONVERT_EXPR:
- *op0 = build1 (code, type, *op0);
+ ops[0] = build1 (code, type, ops[0]);
break;
case BIT_FIELD_REF:
- *op0 = build3 (code, type, *op0, op1, op2);
+ ops[0] = build3 (code, type, ops[0], ops[1], ops[2]);
+ ops[1] = ops[2] = NULL_TREE;
break;
default:;
}
@@ -316,7 +316,7 @@ maybe_push_res_to_seq (code_helper rcode, tree type, tree *ops,
else
res = create_tmp_reg (type);
}
- maybe_build_generic_op (rcode, type, &ops[0], ops[1], ops[2]);
+ maybe_build_generic_op (rcode, type, ops);
gimple *new_stmt = gimple_build_assign (res, rcode,
ops[0], ops[1], ops[2]);
gimple_seq_add_stmt_without_update (seq, new_stmt);
diff --git a/gcc/gimple-match.h b/gcc/gimple-match.h
index 219b5de..2b8f4b9 100644
--- a/gcc/gimple-match.h
+++ b/gcc/gimple-match.h
@@ -64,7 +64,7 @@ bool gimple_resimplify3 (gimple_seq *, code_helper *, tree, tree *,
tree (*)(tree));
tree maybe_push_res_to_seq (code_helper, tree, tree *,
gimple_seq *, tree res = NULL_TREE);
-void maybe_build_generic_op (enum tree_code, tree, tree *, tree, tree);
+void maybe_build_generic_op (enum tree_code, tree, tree *);
#endif /* GCC_GIMPLE_MATCH_H */