summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-11-17 12:38:47 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-11-17 12:38:47 +0000
commitbef69eb57d7958e119fa581b376c6e05cb838c38 (patch)
tree01abd7f17d9a9481753fcc1c88bf79d8895ab390
parentc90928c8d6a1837696fbf5daf0016ed0e675a3b7 (diff)
common.opt (ftree-loop-if-convert-stores): Mark as preserved for backward compatibility.
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
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/common.opt4
-rw-r--r--gcc/doc/invoke.texi20
-rw-r--r--gcc/tree-if-conv.c4
4 files changed, 13 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1050391b8ef..e07caaa2623 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/common.opt b/gcc/common.opt
index 5e8d72d6ae6..1fa3629f548 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -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,
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 620225c37cf..e6c3dc267cf 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -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
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 46d6b342328..dc97fc498df 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -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);