[PATCH] D102748: [LoopUnroll] Don't unroll before vectorisation

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 19 02:35:49 PDT 2021


lebedev.ri added a comment.

In D102748#2767983 <https://reviews.llvm.org/D102748#2767983>, @SjoerdMeijer wrote:

>> I don't have suggestion on how to move forward *this* patch, because I think it's fundamentally the wrong direction to take.
>
> @nikic : Thanks, this is one reason why I wanted early feedback on this.
>
> Like I wrote in the description of this patch, I believe unrolling before vectorisation is fundamentally the wrong approach. This seems to be supported by current numbers, but I appreciate we are talking about a handful of benchmarks. This, I think, also relies on the loop vectoriser which seems more powerful than SLP vectorisation currently.  And like I wrote in a previous comment, now I am very much interested in counter examples.
>
>> Instead of removing early full unroll pass (see @nikic's concerns), couldn't we run loop vectorizer before full unroll pass?
>
> I thought that the loopunroller that is still running after loop vectorisation, was doing the same (full) unrolling as the one I have removed here. That's apparently not the case, and it is on my list to check things here.
> But moving the loop vectoriser before the full unroll pass is what I wanted to achieve, yes, so I would be interested in this approach if feasible.

The current pipeline essentially consists of two parts - inliner pipeline,
which mostly simplifies things so we can best guess the inlining decisions,
and optimization pipeline. So i don't believe we can just run LV in the other pipeline.


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

https://reviews.llvm.org/D102748



More information about the llvm-commits mailing list