Simplify by using dyn_cast instead of isa and cast.
authorDan Gohman <gohman@apple.com>
Wed, 18 Feb 2009 16:54:33 +0000 (16:54 +0000)
committerDan Gohman <gohman@apple.com>
Wed, 18 Feb 2009 16:54:33 +0000 (16:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64917 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/IndVarSimplify.cpp

index c496c57836f37af7b546b0391ca27999fc3b56b9..e31b514b2faf5cedd51f7e2774c32721d46701a6 100644 (file)
@@ -582,18 +582,17 @@ static const PHINode *TestOrigIVForWrap(const Loop *L,
   // For now, only analyze loops with a constant start value, so that
   // we can easily determine if the start value is not a maximum value
   // which would wrap on the first iteration.
-  const Value *InitialVal = PN->getIncomingValue(IncomingEdge);
-  if (!isa<ConstantInt>(InitialVal))
+  const ConstantInt *InitialVal =
+    dyn_cast<ConstantInt>(PN->getIncomingValue(IncomingEdge));
+  if (!InitialVal)
     return 0;
 
   // The original induction variable will start at some non-max value,
   // it counts up by one, and the loop iterates only while it remans
   // less than some value in the same type. As such, it will never wrap.
-  if (isSigned &&
-      !cast<ConstantInt>(InitialVal)->getValue().isMaxSignedValue())
+  if (isSigned && !InitialVal->getValue().isMaxSignedValue())
     NoSignedWrap = true;
-  else if (!isSigned &&
-           !cast<ConstantInt>(InitialVal)->getValue().isMaxValue())
+  else if (!isSigned && !InitialVal->getValue().isMaxValue())
     NoUnsignedWrap = true;
   return PN;
 }