SLPVectorizer.cpp: Avoid std::stable_sort(properlyDominates()).
authorNAKAMURA Takumi <geek4civic@gmail.com>
Tue, 21 Nov 2017 09:41:01 +0000 (09:41 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Tue, 21 Nov 2017 09:41:01 +0000 (09:41 +0000)
commit519ea284af84f77fea8ffdc9d9041b91ba8b49ee
treeac2088c8b1d73db6af9751ec5fe00b9f5bfad6dd
parentd7c85137aa392e8879dd7d37f3bb951def683e08
SLPVectorizer.cpp: Avoid std::stable_sort(properlyDominates()).

properlyDominates() shouldn't be used as sort key. It causes different output between stdlibc++ and libc++.
Instead, I introduced RPOT. In most cases, it works for CSE.

llvm-svn: 318743
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
llvm/test/Transforms/SLPVectorizer/X86/visit-dominated.ll [new file with mode: 0644]