+2012-07-18 Bill Schmidt <wschmidt@linux.ibm.com>
+
+ * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
+ of flags controlling optimization; add -ftree-slsr to list of flags
+ enabled by default at -O; add -fhoist-adjacent-loads to list of flags
+ enabled by default at -O2; add -fvect-cost-model to list of flags
+ enabled by default at -O3; document -fhoist-adjacent-loads and
+ -ftree-slsr.
+ * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
+ * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
+ flag_tree_slsr.
+ * common.opt: Add -ftree-slsr with flag_tree_slsr.
+
2012-07-18 Jie Zhang <jzhang918@gmail.com>
Julian Brown <julian@codesourcery.com>
-ffast-math -ffinite-math-only -ffloat-store -fexcess-precision=@var{style} @gol
-fforward-propagate -ffp-contract=@var{style} -ffunction-sections @gol
-fgcse -fgcse-after-reload -fgcse-las -fgcse-lm -fgraphite-identity @gol
--fgcse-sm -fif-conversion -fif-conversion2 -findirect-inlining @gol
+-fgcse-sm -fhoist-adjacent-loads -fif-conversion @gol
+-fif-conversion2 -findirect-inlining @gol
-finline-functions -finline-functions-called-once -finline-limit=@var{n} @gol
-finline-small-functions -fipa-cp -fipa-cp-clone -fipa-matrix-reorg @gol
-fipa-pta -fipa-profile -fipa-pure-const -fipa-reference @gol
-ftree-phiprop -ftree-loop-distribution -ftree-loop-distribute-patterns @gol
-ftree-loop-ivcanon -ftree-loop-linear -ftree-loop-optimize @gol
-ftree-parallelize-loops=@var{n} -ftree-pre -ftree-partial-pre -ftree-pta @gol
--ftree-reassoc @gol
--ftree-sink -ftree-sra -ftree-switch-conversion -ftree-tail-merge @gol
+-ftree-reassoc -ftree-sink -ftree-slsr -ftree-sra @gol
+-ftree-switch-conversion -ftree-tail-merge @gol
-ftree-ter -ftree-vect-loop-version -ftree-vectorize -ftree-vrp @gol
-funit-at-a-time -funroll-all-loops -funroll-loops @gol
-funsafe-loop-optimizations -funsafe-math-optimizations -funswitch-loops @gol
-ftree-forwprop @gol
-ftree-fre @gol
-ftree-phiprop @gol
+-ftree-slsr @gol
-ftree-sra @gol
-ftree-pta @gol
-ftree-ter @gol
-fdevirtualize @gol
-fexpensive-optimizations @gol
-fgcse -fgcse-lm @gol
+-fhoist-adjacent-loads @gol
-finline-small-functions @gol
-findirect-inlining @gol
-fipa-sra @gol
by @option{-O2} and also turns on the @option{-finline-functions},
@option{-funswitch-loops}, @option{-fpredictive-commoning},
@option{-fgcse-after-reload}, @option{-ftree-vectorize},
+@option{-fvect-cost-model},
@option{-ftree-partial-pre} and @option{-fipa-cp-clone} options.
@item -O0
Perform hoisting of loads from conditional pointers on trees. This
pass is enabled by default at @option{-O} and higher.
+@item -fhoist-adjacent-loads
+@opindex hoist-adjacent-loads
+Speculatively hoist loads from both branches of an if-then-else if the
+loads are from adjacent locations in the same structure and the target
+architecture has a conditional move instruction. This flag is enabled
+by default at @option{-O2} and higher.
+
@item -ftree-copy-prop
@opindex ftree-copy-prop
Perform copy propagation on trees. This pass eliminates unnecessary
much more complex trees to work on resulting in better RTL generation. This is
enabled by default at @option{-O} and higher.
+@item -ftree-slsr
+@opindex ftree-slsr
+Perform straight-line strength reduction on trees. This recognizes related
+expressions involving multiplications and replaces them by less expensive
+calculations when possible. This is enabled by default at @option{-O} and
+higher.
+
@item -ftree-vectorize
@opindex ftree-vectorize
Perform loop vectorization on trees. This flag is enabled by default at
@item -fvect-cost-model
@opindex fvect-cost-model
-Enable cost model for vectorization.
+Enable cost model for vectorization. This option is enabled by default at
+@option{-O3}.
@item -ftree-vrp
@opindex ftree-vrp
{ OPT_LEVELS_1_PLUS, OPT_ftree_ch, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_fcombine_stack_adjustments, NULL, 1 },
{ OPT_LEVELS_1_PLUS, OPT_fcompare_elim, NULL, 1 },
+ { OPT_LEVELS_1_PLUS, OPT_ftree_slsr, NULL, 1 },
/* -O2 optimizations. */
{ OPT_LEVELS_2_PLUS, OPT_finline_small_functions, NULL, 1 },