[LLVMdev] Does loop vectorizer inquire about target's SIMD capabilities?

Nadav Rotem nrotem at apple.com
Thu Jan 3 13:53:42 PST 2013

Hi Akira! 

> Does the current loop vectorizer inquire about the SIMD capabilities of the target architecture when it decides whether it is profitable to vectorize a loop?

Yes, it uses a cost model to determine the profitability of vectorization. At the moment only x86 provides the necessary hooks that are needed for calculating the costs. We may need to change the cost defaults to prevent vectorization on targets that don't implement the cost interface. If this is a problem for you then I can do it soon.
> I am asking this because I would like to have loop vectorization disabled for targets that don't support SIMD instructions (for example, standard mips32).
> Loop vectorization bloats the code size and prolongs compilation time without any improvement to performance for such targets.

Yes. Also, notice that the loop vectorizer tries to be more conservative when the 'optforsize' attribute is used.


More information about the llvm-dev mailing list