[PATCH] D102002: [PassManager] unify vector passes between regular and LTO pipelines

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 6 10:27:12 PDT 2021


lebedev.ri added a comment.

A not-very-helpful rant:

I think it is good that we Unroll after LV,
but i'm uncertain about SLP and Unroll relative ordering.
One would guess that Unroll might introduce extra opportunities for SLP,
but then proper LoopVectorize //should// have caught them already.

On the other hand, as comment mentions

  // Unroll small loops to hide loop backedge latency and saturate any parallel
  // execution resources of an out-of-order processor. We also then need to
  // clean up redundancies and loop invariant code.

so if SLP vectorized code, it may no longer be saturated, and unrolling may be beneficial.
(So i would think we should keep Unroll at the end.)

On the other hand, i'm kinda surprised that we don't do unrolling before LV,
specifically so that it would peel some conditions,
and thus simplify in-loop code.

I'm also unsure about LoopLoadElimination - how exactly does it help?


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

https://reviews.llvm.org/D102002



More information about the llvm-commits mailing list