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

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 19 01:37:15 PDT 2021


SjoerdMeijer added a comment.

In D102748#2767891 <https://reviews.llvm.org/D102748#2767891>, @nikic wrote:

> The full unroll pass during function simplification is quite important for certain code patterns and serves a completely different purpose than the runtime unrolling that happens late in the pipeline. It is critical that full unrolling happens relatively early, so that scalar optimizations have a chance to work on the fully unrolled loop.

This is a phase ordering issue, which is a difficult problem. :)

My numbers show that this is not a problem:

> It is critical that full unrolling happens relatively early, so that scalar optimizations have a chance to work on the fully unrolled loop.

At least, for the codes that I have looked at. So the question is, do you have examples I can look at? Perhaps we can or need to reshuffle the pipeline a bit more after vectorisation? You've requested changes to this patch, but some suggestions how to move this forward would be appreciated.


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

https://reviews.llvm.org/D102748



More information about the llvm-commits mailing list