Meinersbur added inline comments.

================
Comment at: docs/LanguageExtensions.rst:3068-3069
 
+There are loop hints that control transformations (e.g. vectorization, loop
+unrolling) and there loop hints that set transformation options (e.g.
+``vectorize_width``, ``unroll_count``).  Pragmas setting transformation options
----------------
SjoerdMeijer wrote:
> Meinersbur wrote:
> > `vectorize_width` also "controls" a transformation. Is it that in our 
> > interpretation, `vectorize(enable)` overrides the profitability heuristic 
> > by taking out the "do not apply at all" option without setting any other 
> > option?
> I think I need to think a little bit more about this:
> 
> > Is it that in our interpretation, vectorize(enable) overrides the 
> > profitability heuristic by taking out the "do not apply at all" option 
> > without setting any other option?
> 
> but I would answer this with "yes". But just checking, what exactly do you 
> mean with "do not apply at all option"?
I unfortunately mixed two meanings of "option" here:
1. option as in optimization setting
2. option as in candidate to choose from.

Let's take a look on the loop vectorizer. The profitability heuristic's job is 
too choose the "best" candidate out of the following list (independently of how 
LoopVectorize's heuristic is actually implemented; these might be decision made 
independently of each other, but as the user still sees one of the following 
outcomes):

0) no vectorization (the "do not apply at all" option/candidate)
1a) vec width=2 with epilogue
1b) vec width=2 without epilogue
2a) vec width=4 with epilogue
2b) vec width=4 without epilogue
3a) vec width=8 with epilogue
3b) vec width=8 without epilogue
...

`vectorize(enable)` with remove 0) as a candidate. `vecorize(disable)` will 
remove all expect 0) as a candidate. 

The option/settings are `vectorize_width` and `vectorize_predicate` (and 
`interleave_count`). For instance `vectorize_width(4)` would remove 1) and 3)+ 
from the candidate list. `vectorize_predicate(enable)` takes any a) candidate 
from the list. What we were discussing was that these settings would remove 0) 
from the candidate list as well.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66199/new/

https://reviews.llvm.org/D66199



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to