When testing whether a given SCEV depends on a temporary symbolic
authorDan Gohman <gohman@apple.com>
Mon, 15 Feb 2010 10:28:37 +0000 (10:28 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 15 Feb 2010 10:28:37 +0000 (10:28 +0000)
name, test whether the SCEV itself is that temporary symbolic name,
in addition to checking whether the symbolic name appears as a
possibly-indirect operand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96216 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ScalarEvolution.cpp

index 12be58e8b3af244683dc922753aeaa87df40457d..1ed9d071b298e2c7a42427b8e2e8ab82c509c5c6 100644 (file)
@@ -2566,7 +2566,7 @@ ScalarEvolution::ForgetSymbolicName(Instruction *I, const SCEV *SymName) {
     if (It != Scalars.end()) {
       // Short-circuit the def-use traversal if the symbolic name
       // ceases to appear in expressions.
-      if (!It->second->hasOperand(SymName))
+      if (It->second != SymName && !It->second->hasOperand(SymName))
         continue;
 
       // SCEVUnknown for a PHI either means that it has an unrecognized