[PATCH] Add flag to control straight-line strength reduction
Richard Guenther
rguenther@suse.de
Wed Jul 18 07:59:00 GMT 2012
On Tue, 17 Jul 2012, William J. Schmidt wrote:
> I overlooked adding a pass-control flag for strength reduction, added
> here. I named it -ftree-slsr for consistency with other -ftree- flags,
> but could change it to -fgimple-slsr if you prefer that for a pass named
> gimple-ssa-...
>
> Bootstrapped and tested on powerpc-unknown-linux-gnu with no new
> regressions. Ok for trunk?
The switch needs documentation in doc/invoke.texi. Other than that
it's fine to stick with -ftree-..., even that exposes details to our
users that are not necessary (RTL passes didn't have -frtl-... either).
So in the end, why not re-use -fstrength-reduce that is already available
(but stubbed out)?
Comments from other folks?
Thanks,
Richard.
> Thanks,
> Bill
>
>
> 2012-07-17 Bill Schmidt <wschmidt@linux.ibm.com>
>
> * 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.
>
>
> Index: gcc/opts.c
> ===================================================================
> --- gcc/opts.c (revision 189574)
> +++ gcc/opts.c (working copy)
> @@ -452,6 +452,7 @@ static const struct default_options default_option
> { 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 },
> Index: gcc/gimple-ssa-strength-reduction.c
> ===================================================================
> --- gcc/gimple-ssa-strength-reduction.c (revision 189574)
> +++ gcc/gimple-ssa-strength-reduction.c (working copy)
> @@ -1501,7 +1501,7 @@ execute_strength_reduction (void)
> static bool
> gate_strength_reduction (void)
> {
> - return optimize > 0;
> + return flag_tree_slsr;
> }
>
> struct gimple_opt_pass pass_strength_reduction =
> Index: gcc/common.opt
> ===================================================================
> --- gcc/common.opt (revision 189574)
> +++ gcc/common.opt (working copy)
> @@ -2080,6 +2080,10 @@ ftree-sink
> Common Report Var(flag_tree_sink) Optimization
> Enable SSA code sinking on trees
>
> +ftree-slsr
> +Common Report Var(flag_tree_slsr) Optimization
> +Perform straight-line strength reduction
> +
> ftree-sra
> Common Report Var(flag_tree_sra) Optimization
> Perform scalar replacement of aggregates
>
>
>
--
Richard Guenther <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imend
More information about the Gcc-patches
mailing list