common.opt (ftree-loop-if-convert-stores): Mark as preserved for backward compatibility.
authorRichard Biener <rguenther@suse.de>
Thu, 17 Nov 2016 12:38:47 +0000 (12:38 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Thu, 17 Nov 2016 12:38:47 +0000 (12:38 +0000)
2016-11-17  Richard Biener  <rguenther@suse.de>

* common.opt (ftree-loop-if-convert-stores): Mark as preserved for
backward compatibility.
* doc/invoke.texi (ftree-loop-if-convert-stores): Remove.
* tree-if-conv.c (pass_if_conversion::gate): Do not test
flag_tree_loop_if_convert_stores.
(pass_if_conversion::execute): Likewise.

From-SVN: r242542

gcc/ChangeLog
gcc/common.opt
gcc/doc/invoke.texi
gcc/tree-if-conv.c

index 1050391b8ef85dfd1d891ac230cd3d019103eaf2..e07caaa2623481e4a1a9ffd23cfe001d004301dd 100644 (file)
@@ -1,3 +1,12 @@
+2016-11-17  Richard Biener  <rguenther@suse.de>
+
+       * common.opt (ftree-loop-if-convert-stores): Mark as preserved for
+       backward compatibility.
+       * doc/invoke.texi (ftree-loop-if-convert-stores): Remove.
+       * tree-if-conv.c (pass_if_conversion::gate): Do not test
+       flag_tree_loop_if_convert_stores.
+       (pass_if_conversion::execute): Likewise.
+
 2016-11-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
 
        * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for
index 5e8d72d6ae673e5be6cac88f9b68e3f4e4f04765..1fa3629f54848d516a6b346d64172f1a6f5da92b 100644 (file)
@@ -1526,8 +1526,8 @@ Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
 Convert conditional jumps in innermost loops to branchless equivalents.
 
 ftree-loop-if-convert-stores
-Common Report Var(flag_tree_loop_if_convert_stores) Optimization
-Also if-convert conditional jumps containing memory writes.
+Common Ignore
+Does nothing. Preserved for backward compatibility.
 
 ; -finhibit-size-directive inhibits output of .size for ELF.
 ; This is used only for compiling crtstuff.c,
index 620225c37cf8001e956addc494785f52697fa478..e6c3dc267cff99e14b2299bc9d33e8fdeebe39d2 100644 (file)
@@ -412,7 +412,7 @@ Objective-C and Objective-C++ Dialects}.
 -ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol
 -ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts @gol
 -ftree-dse -ftree-forwprop -ftree-fre -fcode-hoisting -ftree-loop-if-convert @gol
--ftree-loop-if-convert-stores -ftree-loop-im @gol
+-ftree-loop-im @gol
 -ftree-phiprop -ftree-loop-distribution -ftree-loop-distribute-patterns @gol
 -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol
 -ftree-loop-vectorize @gol
@@ -8061,24 +8061,6 @@ the innermost loops in order to improve the ability of the
 vectorization pass to handle these loops.  This is enabled by default
 if vectorization is enabled.
 
-@item -ftree-loop-if-convert-stores
-@opindex ftree-loop-if-convert-stores
-Attempt to also if-convert conditional jumps containing memory writes.
-This transformation can be unsafe for multi-threaded programs as it
-transforms conditional memory writes into unconditional memory writes.
-For example,
-@smallexample
-for (i = 0; i < N; i++)
-  if (cond)
-    A[i] = expr;
-@end smallexample
-is transformed to
-@smallexample
-for (i = 0; i < N; i++)
-  A[i] = cond ? expr : A[i];
-@end smallexample
-potentially producing data races.
-
 @item -ftree-loop-distribution
 @opindex ftree-loop-distribution
 Perform loop distribution.  This flag can improve cache performance on
index 46d6b3423289c5575b30e682d9f052ed143abbca..dc97fc498dfa4494e8479d3d4cd1aa6aa7023fc1 100644 (file)
@@ -2872,8 +2872,7 @@ pass_if_conversion::gate (function *fun)
 {
   return (((flag_tree_loop_vectorize || fun->has_force_vectorize_loops)
           && flag_tree_loop_if_convert != 0)
-         || flag_tree_loop_if_convert == 1
-         || flag_tree_loop_if_convert_stores == 1);
+         || flag_tree_loop_if_convert == 1);
 }
 
 unsigned int
@@ -2887,7 +2886,6 @@ pass_if_conversion::execute (function *fun)
 
   FOR_EACH_LOOP (loop, 0)
     if (flag_tree_loop_if_convert == 1
-       || flag_tree_loop_if_convert_stores == 1
        || ((flag_tree_loop_vectorize || loop->force_vectorize)
            && !loop->dont_vectorize))
       todo |= tree_if_conversion (loop);