diff options
author | Michael Zolotukhin <mzolotukhin@apple.com> | 2015-09-22 22:27:12 +0000 |
---|---|---|
committer | Michael Zolotukhin <mzolotukhin@apple.com> | 2015-09-22 22:27:12 +0000 |
commit | deade19630bcec8c35e8afba6333f3e720ab54c0 (patch) | |
tree | d47d53e646065fd720bb8a32082aa365cfa744fa /llvm/lib | |
parent | a7ecbe56857c20d49c16d8a685d34e472e6422fc (diff) | |
download | bcm5719-llvm-deade19630bcec8c35e8afba6333f3e720ab54c0.tar.gz bcm5719-llvm-deade19630bcec8c35e8afba6333f3e720ab54c0.zip |
[Unroll] Do not crash trying to propagate a value to vector load.
llvm-svn: 248333
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp index d9236a2c773..97c51dff84f 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp @@ -423,6 +423,12 @@ private: if (!CDS) return false; + // We might have a vector load from an array. FIXME: for now we just bail + // out in this case, but we should be able to resolve and simplify such + // loads. + if(!CDS->isElementTypeCompatible(I.getType())) + return false; + int ElemSize = CDS->getElementType()->getPrimitiveSizeInBits() / 8U; assert(SimplifiedAddrOp->getValue().getActiveBits() < 64 && "Unexpectedly large index value."); |