[SLPVectorizer] Try different vectorization factors for store chains
authorSanjay Patel <spatel@rotateright.com>
Wed, 8 Jul 2015 23:40:55 +0000 (23:40 +0000)
committerSanjay Patel <spatel@rotateright.com>
Wed, 8 Jul 2015 23:40:55 +0000 (23:40 +0000)
commitc1c43c15ccd850278568a24cb80b40c06c4e1e41
tree6e77f3aa926a0577f8f12dd153ae3001f8ea3a8b
parent6e999b0a30935c95485af61e53c0ba11039af875
[SLPVectorizer] Try different vectorization factors for store chains
...and set max vector register size based on target

This patch is based on discussion on the llvmdev mailing list:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-July/087405.html

and also solves:
https://llvm.org/bugs/show_bug.cgi?id=17170

Several FIXME/TODO items are noted in comments as potential improvements.

Differential Revision: http://reviews.llvm.org/D10950

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241760 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/SLPVectorizer/AMDGPU/simplebb.ll
test/Transforms/SLPVectorizer/X86/cse.ll
test/Transforms/SLPVectorizer/X86/gep.ll
test/Transforms/SLPVectorizer/X86/loopinvariant.ll
test/Transforms/SLPVectorizer/X86/pr19657.ll