gimple-match.h (maybe_build_generic_op): Adjust prototype.
authorRichard Biener <rguenther@suse.de>
Wed, 20 Apr 2016 12:49:58 +0000 (12:49 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 20 Apr 2016 12:49:58 +0000 (12:49 +0000)
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

gcc/ChangeLog
gcc/gimple-fold.c
gcc/gimple-match-head.c
gcc/gimple-match.h

index 1e8a33b9b1355a9ad5d4513254e76b908d7cd43e..e61f98c2df4e5b99369751fd9b2a70a76d4792ac 100644 (file)
@@ -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
index eb130d048469f0b8196e565fed9a40de74b098bd..6cd0a4b8f53797fee268ba0ed2c09418a00169b3 100644 (file)
@@ -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))
            {
index c86a4ffb0e346ac68700e8701be81c010e9e4117..2beadbc29054d4bcb8678d6dbac04401224735b1 100644 (file)
@@ -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);
index 219b5decd55c614d2f781a77f8f70a89ba6a6d9f..2b8f4b968889cd47ea135b2a5c839ef3fea2f56f 100644 (file)
@@ -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 */