[Patch (preapproved)] Guard Copy Header pass on flag_tree_loop_vectorize
Richard Biener
richard.guenther@gmail.com
Thu Jul 27 12:26:00 GMT 2017
On Thu, Jul 27, 2017 at 2:08 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> 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.
I see. So it would be good to try if adding EnabledBy(ftree-vectorize) to
ftree-loop-vectorize/ftree-slp-vectorize would add those to global_options_set
iff -ftree-vectorize is enabled (the opts.c hunk setting the flags is then
redundant as well I guess).
Richard.
> Jakub
More information about the Gcc-patches
mailing list