My previous patch was too conservative. Reject FP and void types, but do
authorChris Lattner <sabre@nondot.org>
Fri, 21 Oct 2005 05:45:41 +0000 (05:45 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 21 Oct 2005 05:45:41 +0000 (05:45 +0000)
allow pointer types.

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

lib/Transforms/Scalar/LoopStrengthReduce.cpp

index 183362dc0e601b32a38a67cb3a75a0d1ff926834..4f18637c9f634dac71877dd9c34c4dca44d3fe54 100644 (file)
@@ -372,7 +372,8 @@ static bool IVUseShouldUsePostIncValue(Instruction *User, Instruction *IV,
 /// return true.  Otherwise, return false.
 bool LoopStrengthReduce::AddUsersIfInteresting(Instruction *I, Loop *L,
                                             std::set<Instruction*> &Processed) {
-  if (!I->getType()->isInteger()) return false;
+  if (!I->getType()->isInteger() && !isa<PointerType>(I->getType()))
+      return false;   // Void and FP expressions cannot be reduced.
   if (!Processed.insert(I).second)
     return true;    // Instruction already handled.