diff options
| author | Nadav Rotem <nrotem@apple.com> | 2013-05-22 19:47:32 +0000 |
|---|---|---|
| committer | Nadav Rotem <nrotem@apple.com> | 2013-05-22 19:47:32 +0000 |
| commit | 3f75c6cfb575917c8c112b2de9593cb860f79e56 (patch) | |
| tree | c90086ea1adb8122e79c7b220703139936e0e6bb /lib/Transforms/Vectorize/SLPVectorizer.cpp | |
| parent | 23d1d5eb566dbd10a81d9ce2dc67ad1548110b08 (diff) | |
| download | external_llvm-3f75c6cfb575917c8c112b2de9593cb860f79e56.zip external_llvm-3f75c6cfb575917c8c112b2de9593cb860f79e56.tar.gz external_llvm-3f75c6cfb575917c8c112b2de9593cb860f79e56.tar.bz2 | |
SLPVectorizer: Change the order in which new instructions are added to the function.
We are not working on a DAG and I ran into a number of problems when I enabled the vectorizations of 'diamond-trees' (trees that share leafs).
* Imroved the numbering API.
* Changed the placement of new instructions to the last root.
* Fixed a bug with external tree users with non-zero lane.
* Fixed a bug in the placement of in-tree users.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182508 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Vectorize/SLPVectorizer.cpp')
| -rw-r--r-- | lib/Transforms/Vectorize/SLPVectorizer.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Transforms/Vectorize/SLPVectorizer.cpp b/lib/Transforms/Vectorize/SLPVectorizer.cpp index 4e89ac7..40e0098 100644 --- a/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -20,6 +20,7 @@ #include "VecUtils.h" #include "llvm/Transforms/Vectorize.h" +#include "llvm/ADT/MapVector.h" #include "llvm/Analysis/AliasAnalysis.h" #include "llvm/Analysis/ScalarEvolution.h" #include "llvm/Analysis/TargetTransformInfo.h" @@ -47,7 +48,7 @@ namespace { /// The SLPVectorizer Pass. struct SLPVectorizer : public FunctionPass { - typedef std::map<Value*, BoUpSLP::StoreList> StoreListMap; + typedef MapVector<Value*, BoUpSLP::StoreList> StoreListMap; /// Pass identification, replacement for typeid static char ID; |
