summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolution.cpp
diff options
context:
space:
mode:
authorEvgeny Stupachenko <evstupac@gmail.com>2018-02-27 00:17:31 +0000
committerEvgeny Stupachenko <evstupac@gmail.com>2018-02-27 00:17:31 +0000
commita732611ac822f9cc9fc5b322fdeff95f8c38cc6a (patch)
tree57f34f3a3bbad022ce356a2f264b0ad8f7328924 /llvm/lib/Analysis/ScalarEvolution.cpp
parent6df870ca586632ea59afb7f2ce8723684cea9496 (diff)
downloadbcm5719-llvm-a732611ac822f9cc9fc5b322fdeff95f8c38cc6a.tar.gz
bcm5719-llvm-a732611ac822f9cc9fc5b322fdeff95f8c38cc6a.zip
Fix PR36032, PR35432
Summary: The change fix an assert fail at ScalarEvolutionExpander.cpp: assert(ExitCount != SE.getCouldNotCompute() && "Invalid loop count"); Reviewers: sbaranga Differential Revision: http://reviews.llvm.org/D42604 From: Evgeny Stupachenko <evstupac@gmail.com> <evgeny.v.stupachenko@intel.com> llvm-svn: 326154
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolution.cpp')
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index e75a29bd0a3..f75b55d4bf4 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -11649,6 +11649,12 @@ private:
if (!PredicatedRewrite)
return Expr;
for (auto *P : PredicatedRewrite->second){
+ // Wrap predicates from outer loops are not supported.
+ if (auto *WP = dyn_cast<const SCEVWrapPredicate>(P)) {
+ auto *AR = cast<const SCEVAddRecExpr>(WP->getExpr());
+ if (L != AR->getLoop())
+ return Expr;
+ }
if (!addOverflowAssumption(P))
return Expr;
}
OpenPOWER on IntegriCloud