[PATCH] D102002: [PassManager] unify vector passes between regular and LTO pipelines
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 6 14:39:57 PDT 2021
nikic added a comment.
> The difference for the regular pipeline is that we unroll directly after the loop vectorizer instead of waiting until after SLP/VectorCombine. That eliminates the need for one stage of instcombine. This reduced compile-time by about 2.7%:
This seems to be mostly due to less code size, which is most likely caused by less unrolling. It's not really obvious to me why this ordering change results in such a large difference. While I would love LLVM to be less gratuitous when it comes to runtime unrolling (especially of vectorized code), I strongly suspect that unrolling is being prevented here for the wrong reasons. Maybe the IR coming out of LoopVectorize is in some form that SCEV/LoopUnroll doesn't understand, and other passes are needed to clean it up first, or something along those lines.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D102002/new/
https://reviews.llvm.org/D102002
More information about the llvm-commits
mailing list