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