summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2011-03-02 01:34:10 +0000
committerDan Gohman <gohman@apple.com>2011-03-02 01:34:10 +0000
commit7290868a1ba52b5b82b4c30807301b63b2b14cf1 (patch)
tree425053aff3deacbd6e9f55692c8dd3b59e5405c3 /llvm/lib/Analysis/ScalarEvolutionExpander.cpp
parent15fed7af3c050a7cb42316fa8c92f69fa9ffe1a0 (diff)
downloadbcm5719-llvm-7290868a1ba52b5b82b4c30807301b63b2b14cf1.tar.gz
bcm5719-llvm-7290868a1ba52b5b82b4c30807301b63b2b14cf1.zip
Don't re-use existing addrec expansions if they contain casts.
This fixes PR9259. llvm-svn: 126812
Diffstat (limited to 'llvm/lib/Analysis/ScalarEvolutionExpander.cpp')
-rw-r--r--llvm/lib/Analysis/ScalarEvolutionExpander.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolutionExpander.cpp b/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
index b7c110f28cf..f2d23c4be70 100644
--- a/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
+++ b/llvm/lib/Analysis/ScalarEvolutionExpander.cpp
@@ -858,7 +858,8 @@ SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized,
// loop already visited by LSR for example, but it wouldn't have
// to be.
do {
- if (IncV->getNumOperands() == 0 || isa<PHINode>(IncV)) {
+ if (IncV->getNumOperands() == 0 || isa<PHINode>(IncV) ||
+ isa<CastInst>(IncV)) {
IncV = 0;
break;
}
OpenPOWER on IntegriCloud