On Thu, Jul 27, 2017 at 01:54:21PM +0200, Richard Biener wrote:
> --- gcc/common.opt      (revision 250619)
> +++ gcc/common.opt      (working copy)
>  ftree-vectorize
> -Common Report Var(flag_tree_vectorize) Optimization
> +Common Report Optimization
>  Enable vectorization on trees.
> 
>  ftree-vectorizer-verbose=
> 
> which shows a few other uses of flag_tree_vectorize:
> 
> int
> omp_max_vf (void)
> {
>   if (!optimize
>       || optimize_debug
>       || !flag_tree_loop_optimize
>       || (!flag_tree_loop_vectorize
>           && (global_options_set.x_flag_tree_loop_vectorize
>               || global_options_set.x_flag_tree_vectorize)))
>     return 1;
> 
> not sure what that was supposed to test.  Jakub?  Similar
> use in expand_omp_simd.

The intent is/was to check if the vectorizer pass will be invoked,
otherwise it makes no sense to generate the arrays.
So, for -O0/-Og or -fno-tree-loop-optimize, we know that the pass
isn't even in the pipeline.
And otherwise the intent was that we try to optimize, unless
user asked explicitly -fno-tree-loop-vectorize or -fno-tree-vectorize
not to optimize.  Because the vect pass is enabled if:
flag_tree_loop_vectorize || fun->has_force_vectorize_loops
but returning non-zero from omp_max_vf and the other omp spot means
there will be cfun->has_force_vectorize_loops.

        Jakub

Reply via email to