fix: SLPVectorizer crashes for unreachable blocks containing not schedulable instruct...
authorErik Eckstein <eeckstein@apple.com>
Fri, 22 Aug 2014 01:18:39 +0000 (01:18 +0000)
committerErik Eckstein <eeckstein@apple.com>
Fri, 22 Aug 2014 01:18:39 +0000 (01:18 +0000)
commit6ca2d8b7c7461910610405e8bde5ef0ca9506d62
tree3af1467f08805391acae84ea807628d18d2bb55a
parentf5377021c55e7ffc158488fb94d580772573d978
fix: SLPVectorizer crashes for unreachable blocks containing not schedulable instructions.

In unreachable blocks it's legal to have instructions like "%x = op %x".
Such instuctions are not schedulable. Therefore the SLPVectorizer has to check for
unreachable blocks and ignore them.

Fixes bug 20646.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216256 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Vectorize/SLPVectorizer.cpp
test/Transforms/SLPVectorizer/X86/unreachable.ll [new file with mode: 0644]