diff options
author | Dan Gohman <gohman@apple.com> | 2011-03-04 20:46:46 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2011-03-04 20:46:46 +0000 |
commit | a7a841adb89efa6ad3b35e9d4bcccccfb8ca146a (patch) | |
tree | bdc00769af019b8cbc760146a1654089200ef3fa /lib/Analysis/ScalarEvolutionExpander.cpp | |
parent | c42fb5f81c80c0d2713ca34d2216ced764ff8b14 (diff) |
When decling to reuse existing expressions that involve casts, ignore
bitcasts, which are really no-ops here. This fixes slowdowns on
MultiSource/Applications/aha and others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127031 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolutionExpander.cpp')
-rw-r--r-- | lib/Analysis/ScalarEvolutionExpander.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Analysis/ScalarEvolutionExpander.cpp b/lib/Analysis/ScalarEvolutionExpander.cpp index f2d23c4be7..76a94ea274 100644 --- a/lib/Analysis/ScalarEvolutionExpander.cpp +++ b/lib/Analysis/ScalarEvolutionExpander.cpp @@ -859,7 +859,7 @@ SCEVExpander::getAddRecExprPHILiterally(const SCEVAddRecExpr *Normalized, // to be. do { if (IncV->getNumOperands() == 0 || isa<PHINode>(IncV) || - isa<CastInst>(IncV)) { + (isa<CastInst>(IncV) && !isa<BitCastInst>(IncV))) { IncV = 0; break; } |