[llvm-dev] loop vectorizer disabling

Scott Manley via llvm-dev llvm-dev at lists.llvm.org
Tue Sep 10 09:15:43 PDT 2019


Yes, I agree -- this is exactly what should happen.

On Tue, Sep 10, 2019 at 5:44 AM Sjoerd Meijer via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

>
> I would like to propose that loop pragma `vectorize(disable)` actually
> means disabling the vectorizer for that loop. This perhaps sounds really
> obvious (I hope it does), but currently `vectorize(disable)` sets the
> vectorization width to 1, and that means the vectorizer will run and could
> perform other tricks such as interleaving. The main reason to change the
> behaviour is that it will be more what (most) users would expect.
>
> I think we reached consensus on changing the behaviour in [4], but since
> this is changing the behaviour of a user-facing pragma, we would like to
> know if there are any objections. If people rely on the current behaviour
> that `vectorize(disable)` will do some other transformations performed by
> the vectorizer, which I hope is an edge case, I think this is a trivial
> rewrite, but still a change. So, again, without objections we would like
> to go ahead with this.
>
> For a little bit more context, this is a follow-up of a discussion on loop
> pragmas we had not so long ago. We added a new pragma [1], and enabling
> this new transformation option implies setting the transformation [2]. This
> is something that our docs promise for other transformation options too,
> except that this wasn't happening and so we started fixing that. In [3]
> for example, we implement that `vectorize_width()` implies
> `vectorize(enable)`. Related to this, we started discussing in [4] what
> `vectorize(disable)` should mean easier of [3], because it makes
> implementation easier but more importantly because that would probably
> match user expectations better.
>
>
> [1] https://reviews.llvm.org/D64744
> [2] https://reviews.llvm.org/D65776
> [3] https://reviews.llvm.org/D66290
> [4] https://reviews.llvm.org/D66796
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190910/8b4028fc/attachment.html>


More information about the llvm-dev mailing list