diff options
author | Michael Zolotukhin <mzolotukhin@apple.com> | 2016-05-27 00:55:16 +0000 |
---|---|---|
committer | Michael Zolotukhin <mzolotukhin@apple.com> | 2016-05-27 00:55:16 +0000 |
commit | 15e745133eeca7a413308ad040a19aea5aad1d2b (patch) | |
tree | ac45175eafae0ec91526058ace822f1481d77f8b /llvm/lib/Analysis/LoopUnrollAnalyzer.cpp | |
parent | 0edb563f274876d97b6962ef088137936bc2893c (diff) | |
download | llvm-15e745133eeca7a413308ad040a19aea5aad1d2b.zip llvm-15e745133eeca7a413308ad040a19aea5aad1d2b.tar.gz llvm-15e745133eeca7a413308ad040a19aea5aad1d2b.tar.bz2 |
[LoopUnrollAnalyzer] Bail out instead of dying with assert when facing huge index.
This fixes PR27902.
llvm-svn: 270946
Diffstat (limited to 'llvm/lib/Analysis/LoopUnrollAnalyzer.cpp')
-rw-r--r-- | llvm/lib/Analysis/LoopUnrollAnalyzer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp b/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp index d88ab16..8a97a9f 100644 --- a/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp +++ b/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp @@ -119,8 +119,8 @@ bool UnrolledInstAnalyzer::visitLoad(LoadInst &I) { return false; int ElemSize = CDS->getElementType()->getPrimitiveSizeInBits() / 8U; - assert(SimplifiedAddrOp->getValue().getActiveBits() < 64 && - "Unexpectedly large index value."); + if (SimplifiedAddrOp->getValue().getActiveBits() >= 64) + return false; int64_t Index = SimplifiedAddrOp->getSExtValue() / ElemSize; if (Index >= CDS->getNumElements()) { // FIXME: For now we conservatively ignore out of bound accesses, but |