aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp
diff options
context:
space:
mode:
authorMichael Zolotukhin <mzolotukhin@apple.com>2016-05-27 00:55:16 +0000
committerMichael Zolotukhin <mzolotukhin@apple.com>2016-05-27 00:55:16 +0000
commit15e745133eeca7a413308ad040a19aea5aad1d2b (patch)
treeac45175eafae0ec91526058ace822f1481d77f8b /llvm/lib/Analysis/LoopUnrollAnalyzer.cpp
parent0edb563f274876d97b6962ef088137936bc2893c (diff)
downloadllvm-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.cpp4
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