SLP Vectorizer: Implement multi-block slp-vectorization.

Rewrote the SLP-vectorization as a whole-function vectorization pass. It is now able to vectorize chains across multiple basic blocks.
It still does not vectorize PHIs, but this should be easy to do now that we scan the entire function.
I removed the support for extracting values from trees.
We are now able to vectorize more programs, but there are some serious regressions in many workloads (such as flops-6 and mandel-2).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184647 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nadav Rotem
2013-06-22 21:34:10 +00:00
parent 71f28bf6fb
commit 53a0552b06
7 changed files with 1220 additions and 1360 deletions

View File

@@ -3,7 +3,6 @@ add_llvm_library(LLVMVectorize
Vectorize.cpp
LoopVectorize.cpp
SLPVectorizer.cpp
VecUtils.cpp
)
add_dependencies(LLVMVectorize intrinsics_gen)