For PR1205:
Adjust to changes in ConstantRange interface.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34762 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp
index 364e122..7ce975e 100644
--- a/lib/Analysis/ScalarEvolution.cpp
+++ b/lib/Analysis/ScalarEvolution.cpp
@@ -124,7 +124,7 @@
   const Type *Ty = getType();
   assert(Ty->isInteger() && "Can't get range for a non-integer SCEV!");
   // Default to a full range if no better information is available.
-  return ConstantRange(getType());
+  return ConstantRange(getBitWidth());
 }
 
 uint32_t SCEV::getBitWidth() const {
@@ -211,7 +211,7 @@
 }
 
 ConstantRange SCEVTruncateExpr::getValueRange() const {
-  return getOperand()->getValueRange().truncate(getType());
+  return getOperand()->getValueRange().truncate(getBitWidth());
 }
 
 void SCEVTruncateExpr::print(std::ostream &OS) const {
@@ -237,7 +237,7 @@
 }
 
 ConstantRange SCEVZeroExtendExpr::getValueRange() const {
-  return getOperand()->getValueRange().zeroExtend(getType());
+  return getOperand()->getValueRange().zeroExtend(getBitWidth());
 }
 
 void SCEVZeroExtendExpr::print(std::ostream &OS) const {
@@ -1572,7 +1572,8 @@
           ConstantExpr::getBitCast(CompVal, RealTy));
         if (CompVal) {
           // Form the constant range.
-          ConstantRange CompRange(Cond, CompVal->getValue());
+          ConstantRange CompRange(
+              ICmpInst::makeConstantRange(Cond, CompVal->getValue()));
 
           SCEVHandle Ret = AddRec->getNumIterationsInRange(CompRange, 
               false /*Always treat as unsigned range*/);
diff --git a/lib/Transforms/Scalar/CorrelatedExprs.cpp b/lib/Transforms/Scalar/CorrelatedExprs.cpp
index 277a128..d9843a5 100644
--- a/lib/Transforms/Scalar/CorrelatedExprs.cpp
+++ b/lib/Transforms/Scalar/CorrelatedExprs.cpp
@@ -113,7 +113,8 @@
     Value *Replacement;
   public:
     ValueInfo(const Type *Ty)
-      : Bounds(Ty->isInteger() ? Ty : Type::Int32Ty), Replacement(0) {}
+      : Bounds(Ty->isInteger() ? cast<IntegerType>(Ty)->getBitWidth()  : 32), 
+               Replacement(0) {}
 
     // getBounds() - Return the constant bounds of the value...
     const ConstantRange &getBounds() const { return Bounds; }
@@ -1153,9 +1154,10 @@
     //
     if (ConstantInt *C = dyn_cast<ConstantInt>(Op1)) {
       // Check to see if we already know the result of this comparison...
-      ConstantRange R = ConstantRange(predicate, C->getValue());
+      ICmpInst::Predicate ipred = ICmpInst::Predicate(predicate);
+      ConstantRange R = ICmpInst::makeConstantRange(ipred, C->getValue());
       ConstantRange Int = R.intersectWith(Op0VI->getBounds(),
-          ICmpInst::isSignedPredicate(ICmpInst::Predicate(predicate)));
+          ICmpInst::isSignedPredicate(ipred));
 
       // If the intersection of the two ranges is empty, then the condition
       // could never be true!
@@ -1199,10 +1201,12 @@
   //
   if (ConstantInt *C = dyn_cast<ConstantInt>(Val))
     if (Op >= ICmpInst::FIRST_ICMP_PREDICATE && 
-        Op <= ICmpInst::LAST_ICMP_PREDICATE)
-      if (ConstantRange(Op, C->getValue()).intersectWith(VI.getBounds(),
-          ICmpInst::isSignedPredicate(ICmpInst::Predicate(Op))).isEmptySet())
+        Op <= ICmpInst::LAST_ICMP_PREDICATE) {
+      ICmpInst::Predicate ipred = ICmpInst::Predicate(Op);
+      if (ICmpInst::makeConstantRange(ipred, C->getValue()).intersectWith(
+            VI.getBounds(), ICmpInst::isSignedPredicate(ipred)).isEmptySet())
         return true;
+    }
 
   switch (Rel) {
   default: assert(0 && "Unknown Relationship code!");
@@ -1257,10 +1261,12 @@
   //
   if (ConstantInt *C = dyn_cast<ConstantInt>(Val))
     if (Op >= ICmpInst::FIRST_ICMP_PREDICATE && 
-        Op <= ICmpInst::LAST_ICMP_PREDICATE)
+        Op <= ICmpInst::LAST_ICMP_PREDICATE) {
+      ICmpInst::Predicate ipred = ICmpInst::Predicate(Op);
       VI.getBounds() = 
-        ConstantRange(Op, C->getValue()).intersectWith(VI.getBounds(),
-                          ICmpInst::isSignedPredicate(ICmpInst::Predicate(Op)));
+        ICmpInst::makeConstantRange(ipred, C->getValue()).intersectWith(
+            VI.getBounds(), ICmpInst::isSignedPredicate(ipred));
+    }
 
   switch (Rel) {
   default: assert(0 && "Unknown prior value!");