Commit bef69eb5 by Richard Biener Committed by Richard Biener

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
parent c90928c8
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> 2016-11-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for
...@@ -1526,8 +1526,8 @@ Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization ...@@ -1526,8 +1526,8 @@ Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
Convert conditional jumps in innermost loops to branchless equivalents. Convert conditional jumps in innermost loops to branchless equivalents.
ftree-loop-if-convert-stores ftree-loop-if-convert-stores
Common Report Var(flag_tree_loop_if_convert_stores) Optimization Common Ignore
Also if-convert conditional jumps containing memory writes. Does nothing. Preserved for backward compatibility.
; -finhibit-size-directive inhibits output of .size for ELF. ; -finhibit-size-directive inhibits output of .size for ELF.
; This is used only for compiling crtstuff.c, ; This is used only for compiling crtstuff.c,
......
...@@ -412,7 +412,7 @@ Objective-C and Objective-C++ Dialects}. ...@@ -412,7 +412,7 @@ Objective-C and Objective-C++ Dialects}.
-ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol -ftree-builtin-call-dce -ftree-ccp -ftree-ch @gol
-ftree-coalesce-vars -ftree-copy-prop -ftree-dce -ftree-dominator-opts @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-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-phiprop -ftree-loop-distribution -ftree-loop-distribute-patterns @gol
-ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol -ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol
-ftree-loop-vectorize @gol -ftree-loop-vectorize @gol
...@@ -8061,24 +8061,6 @@ the innermost loops in order to improve the ability of the ...@@ -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 vectorization pass to handle these loops. This is enabled by default
if vectorization is enabled. 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 @item -ftree-loop-distribution
@opindex ftree-loop-distribution @opindex ftree-loop-distribution
Perform loop distribution. This flag can improve cache performance on Perform loop distribution. This flag can improve cache performance on
......
...@@ -2872,8 +2872,7 @@ pass_if_conversion::gate (function *fun) ...@@ -2872,8 +2872,7 @@ pass_if_conversion::gate (function *fun)
{ {
return (((flag_tree_loop_vectorize || fun->has_force_vectorize_loops) return (((flag_tree_loop_vectorize || fun->has_force_vectorize_loops)
&& flag_tree_loop_if_convert != 0) && flag_tree_loop_if_convert != 0)
|| flag_tree_loop_if_convert == 1 || flag_tree_loop_if_convert == 1);
|| flag_tree_loop_if_convert_stores == 1);
} }
unsigned int unsigned int
...@@ -2887,7 +2886,6 @@ pass_if_conversion::execute (function *fun) ...@@ -2887,7 +2886,6 @@ pass_if_conversion::execute (function *fun)
FOR_EACH_LOOP (loop, 0) FOR_EACH_LOOP (loop, 0)
if (flag_tree_loop_if_convert == 1 if (flag_tree_loop_if_convert == 1
|| flag_tree_loop_if_convert_stores == 1
|| ((flag_tree_loop_vectorize || loop->force_vectorize) || ((flag_tree_loop_vectorize || loop->force_vectorize)
&& !loop->dont_vectorize)) && !loop->dont_vectorize))
todo |= tree_if_conversion (loop); todo |= tree_if_conversion (loop);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment