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 f81ce7981e8da05e738efae0a189e67efd58cdcb..62c2fd48772d45a60ecac4449ff5523d1913ab35 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 76c8f1fa1e260e1f550d3d541e959d51947aa013..67d1c66a61ffe595b56dbe841fe23398c67e9d36 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)
            {