genmatch.c (dt_simplify::gen_1): For generic wrap all multi-result-use captures in...
authorRichard Biener <rguenther@suse.de>
Thu, 26 Nov 2015 13:45:45 +0000 (13:45 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 26 Nov 2015 13:45:45 +0000 (13:45 +0000)
2015-11-26  Richard Biener  <rguenther@suse.de>

* genmatch.c (dt_simplify::gen_1): For generic wrap all
multi-result-use captures in a SAVE_EXPR.

From-SVN: r230955

gcc/ChangeLog
gcc/genmatch.c

index f81ce79..62c2fd4 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-26  Richard Biener  <rguenther@suse.de>
+
+       * genmatch.c (dt_simplify::gen_1): For generic wrap all
+       multi-result-use captures in a SAVE_EXPR.
+
 2015-11-26  Matthew Wahab  <matthew.wahab@arm.com>
 
        * config/aarch64/aarch64.h (AARCH64_ISA_RDMA): New.
index 76c8f1f..67d1c66 100644 (file)
@@ -3112,16 +3112,10 @@ dt_simplify::gen_1 (FILE *f, int indent, bool gimple, operand *result)
              {
                if (cinfo.info[i].same_as != (unsigned)i)
                  continue;
-               if (!cinfo.info[i].force_no_side_effects_p
-                   && cinfo.info[i].result_use_count > 1)
-                 {
-                   fprintf_indent (f, indent,
-                                   "if (TREE_SIDE_EFFECTS (captures[%d]))\n",
-                                   i);
-                   fprintf_indent (f, indent,
-                                   "  captures[%d] = save_expr (captures[%d]);\n",
-                                   i, i);
-                 }
+               if (cinfo.info[i].result_use_count > 1)
+                 fprintf_indent (f, indent,
+                                 "captures[%d] = save_expr (captures[%d]);\n",
+                                 i, i);
              }
          for (unsigned j = 0; j < e->ops.length (); ++j)
            {