SLP/Loop vectorizer pass ordering
James Molloy
james.molloy at arm.com
Fri Jul 25 08:41:38 PDT 2014
Hi Nadav, Arnold,
I've come across an interesting optimization problem in one of the SPEC
benchmarks. There is a loop that can be optimized by both the SLP vectorizer
and the loop vectorizer (when I patch the loop vectorizer to deal with fsub
reductions).
The SLP vectorizer actually makes the performance worse - I think this is
due to a lack of loop unrolling afterwards. The Loop vectorizer can improve
the performance.
However, the loop vectorizer runs after the SLP vectorizer, so it never gets
a chance. I'd have thought the ideal order would be Loop Vectorizer -> SLP
vectorizer -> BB vectorizer, given that the loop vectorizer if it can run
will probably give greater speedup than SLP.
The current sequence is SLP vectorizer -> BB vectorizer -> Loop vectorizer.
What are your thoughts on this?
Cheers,
James
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140725/2ca4c5ba/attachment.html>
More information about the llvm-commits
mailing list