Fix bug: LICM/2003-02-28-PromoteDifferentType.ll
authorChris Lattner <sabre@nondot.org>
Fri, 28 Feb 2003 19:21:40 +0000 (19:21 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 28 Feb 2003 19:21:40 +0000 (19:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5675 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LICM.cpp

index 534a073abe190bf04d33a54477006545327a8a51..334ede39d9822f016bb29bbd44e22518c50845bc 100644 (file)
@@ -487,9 +487,15 @@ void LICM::findPromotableValuesInLoop(
 
         bool PointerOk = true;
         for (std::set<Value*>::const_iterator I =CurLBI->LoadedPointers.begin(),
-               E = CurLBI->LoadedPointers.end(); I != E; ++I)
-          if (AA->alias(V, ~0, *I, ~0) == AliasAnalysis::MayAlias) {
+               E = CurLBI->LoadedPointers.end(); PointerOk && I != E; ++I)
+          switch (AA->alias(V, ~0, *I, ~0)) {
+          case AliasAnalysis::MustAlias:
+            if (V->getType() != (*I)->getType())
+              PointerOk = false;
+            break;
+          case AliasAnalysis::MayAlias:
             PointerOk = false;
+          case AliasAnalysis::NoAlias:
             break;
           }