Remove getValueRange from SCEV. It wasn't doing anything there anyways, and a
authorNick Lewycky <nicholas@mxc.ca>
Wed, 9 Jul 2008 03:21:51 +0000 (03:21 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Wed, 9 Jul 2008 03:21:51 +0000 (03:21 +0000)
more complete version is now available from the LoopVR pass.

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

include/llvm/Analysis/ScalarEvolution.h
include/llvm/Analysis/ScalarEvolutionExpressions.h
lib/Analysis/ScalarEvolution.cpp

index 1385cd493bad1894b085e95db4a6f19a2358ab7b..e5b10c9d59a79f9e24c32e8cfb195d156bf3136f 100644 (file)
@@ -59,10 +59,6 @@ namespace llvm {
 
     unsigned getSCEVType() const { return SCEVType; }
 
-    /// getValueRange - Return the tightest constant bounds that this value is
-    /// known to have.  This method is only valid on integer SCEV objects.
-    virtual ConstantRange getValueRange() const;
-
     /// isLoopInvariant - Return true if the value of this SCEV is unchanging in
     /// the specified loop.
     virtual bool isLoopInvariant(const Loop *L) const = 0;
index 76f4b2c28cb1e0d96ed41af34d4285dc97f0e691..652a99d0fcaac018b7677255270dae873d42c2c0 100644 (file)
@@ -42,10 +42,6 @@ namespace llvm {
   public:
     ConstantInt *getValue() const { return V; }
 
-    /// getValueRange - Return the tightest constant bounds that this value is
-    /// known to have.  This method is only valid on integer SCEV objects.
-    virtual ConstantRange getValueRange() const;
-
     virtual bool isLoopInvariant(const Loop *L) const {
       return true;
     }
@@ -104,10 +100,6 @@ namespace llvm {
       return SE.getTruncateExpr(H, Ty);
     }
 
-    /// getValueRange - Return the tightest constant bounds that this value is
-    /// known to have.  This method is only valid on integer SCEV objects.
-    virtual ConstantRange getValueRange() const;
-
     virtual void print(std::ostream &OS) const;
     void print(std::ostream *OS) const { if (OS) print(*OS); }
 
@@ -141,10 +133,6 @@ namespace llvm {
       return Op->hasComputableLoopEvolution(L);
     }
 
-    /// getValueRange - Return the tightest constant bounds that this value is
-    /// known to have.  This method is only valid on integer SCEV objects.
-    virtual ConstantRange getValueRange() const;
-
     SCEVHandle replaceSymbolicValuesWithConcrete(const SCEVHandle &Sym,
                                                  const SCEVHandle &Conc,
                                                  ScalarEvolution &SE) const {
@@ -187,10 +175,6 @@ namespace llvm {
       return Op->hasComputableLoopEvolution(L);
     }
 
-    /// getValueRange - Return the tightest constant bounds that this value is
-    /// known to have.  This method is only valid on integer SCEV objects.
-    virtual ConstantRange getValueRange() const;
-
     SCEVHandle replaceSymbolicValuesWithConcrete(const SCEVHandle &Sym,
                                                  const SCEVHandle &Conc,
                                                  ScalarEvolution &SE) const {
index 4462986f15b1ed32970a740c6cd4111a407d7d24..ab0de275b04df75e73bf8b46fbd90542e81bf512 100644 (file)
@@ -117,15 +117,6 @@ void SCEV::dump() const {
   print(cerr);
 }
 
-/// getValueRange - Return the tightest constant bounds that this value is
-/// known to have.  This method is only valid on integer SCEV objects.
-ConstantRange SCEV::getValueRange() const {
-  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(getBitWidth());
-}
-
 uint32_t SCEV::getBitWidth() const {
   if (const IntegerType* ITy = dyn_cast<IntegerType>(getType()))
     return ITy->getBitWidth();
@@ -192,10 +183,6 @@ SCEVHandle ScalarEvolution::getConstant(const APInt& Val) {
   return getConstant(ConstantInt::get(Val));
 }
 
-ConstantRange SCEVConstant::getValueRange() const {
-  return ConstantRange(V->getValue());
-}
-
 const Type *SCEVConstant::getType() const { return V->getType(); }
 
 void SCEVConstant::print(std::ostream &OS) const {
@@ -220,10 +207,6 @@ SCEVTruncateExpr::~SCEVTruncateExpr() {
   SCEVTruncates->erase(std::make_pair(Op, Ty));
 }
 
-ConstantRange SCEVTruncateExpr::getValueRange() const {
-  return getOperand()->getValueRange().truncate(getBitWidth());
-}
-
 void SCEVTruncateExpr::print(std::ostream &OS) const {
   OS << "(truncate " << *Op << " to " << *Ty << ")";
 }
@@ -246,10 +229,6 @@ SCEVZeroExtendExpr::~SCEVZeroExtendExpr() {
   SCEVZeroExtends->erase(std::make_pair(Op, Ty));
 }
 
-ConstantRange SCEVZeroExtendExpr::getValueRange() const {
-  return getOperand()->getValueRange().zeroExtend(getBitWidth());
-}
-
 void SCEVZeroExtendExpr::print(std::ostream &OS) const {
   OS << "(zeroextend " << *Op << " to " << *Ty << ")";
 }
@@ -272,10 +251,6 @@ SCEVSignExtendExpr::~SCEVSignExtendExpr() {
   SCEVSignExtends->erase(std::make_pair(Op, Ty));
 }
 
-ConstantRange SCEVSignExtendExpr::getValueRange() const {
-  return getOperand()->getValueRange().signExtend(getBitWidth());
-}
-
 void SCEVSignExtendExpr::print(std::ostream &OS) const {
   OS << "(signextend " << *Op << " to " << *Ty << ")";
 }
@@ -2906,12 +2881,6 @@ void ScalarEvolution::print(std::ostream &OS, const Module* ) const {
       SV->print(OS);
       OS << "\t\t";
 
-      if ((*I).getType()->isInteger()) {
-        ConstantRange Bounds = SV->getValueRange();
-        if (!Bounds.isFullSet())
-          OS << "Bounds: " << Bounds << " ";
-      }
-
       if (const Loop *L = LI.getLoopFor((*I).getParent())) {
         OS << "Exits: ";
         SCEVHandle ExitValue = getSCEVAtScope(&*I, L->getParentLoop());