On 05/20/2016 05:40 AM, Ilya Enkovich wrote:
2016-05-20 14:17 GMT+03:00 Richard Biener <richard.guent...@gmail.com>:
On Fri, May 20, 2016 at 11:50 AM, Ilya Enkovich <enkovich....@gmail.com> wrote:
2016-05-20 12:26 GMT+03:00 Richard Biener <richard.guent...@gmail.com>:
On Thu, May 19, 2016 at 9:36 PM, Ilya Enkovich <enkovich....@gmail.com> wrote:
Hi,
This patch introduces new options used for loop epilogues vectorization.
Why's that? This is a bit too much for the casual user and if it is
really necessary
to control this via options then it is not fine-grained enough.
Why doesn't the vectorizer/backend have enough info to decide this itself?
I don't expect casual user to decide which modes to choose. These controls are
added for debugging and performance measurement purposes. I see now I miss
-ftree-vectorize-epilogues aliased to -ftree-vectorize-epilogues=all. Surely
I expect epilogues and short loops vectorization be enabled by default on -O3
or by -ftree-vectorize-loops.
Can you make all these --params then? I think to be useful to users we'd want
them to be loop pragmas rather than options.
OK, I'll change it to params. I didn't think about control via
pragmas but will do now.
So the questions I'd like to see answered:
1. You've got 3 modes for epilogue vectorization. Is this an artifact
of not really having good heuristics yet for which mode to apply to a
particular loop at this time?
2. Similarly for cost models.
In the cover message you indicated you were getting expected gains of
KNL, but not on Haswell. Do you have any sense yet why you're not
getting good resuls on Haswell yet? For KNL are you getting those
speedups with a generic set of options or are those with a custom set of
options to set the mode & cost models?
jeff