Revert r111031. The way LLVM defines loop invariance, the property of an
authorDan Gohman <gohman@apple.com>
Mon, 16 Aug 2010 17:34:25 +0000 (17:34 +0000)
committerDan Gohman <gohman@apple.com>
Mon, 16 Aug 2010 17:34:25 +0000 (17:34 +0000)
expression being loop invariant is not equivalent to the property of
properly dominating the loop header.

Other optimizations have also made this optimization less important.

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

include/llvm/Analysis/ScalarEvolutionExpressions.h

index 4baaa4506c14b4a28d6ad51e262a820bab7dd18d..4213a287011b56043549dbc6a7d2290351a27f5f 100644 (file)
@@ -126,12 +126,6 @@ namespace llvm {
   public:
     virtual void print(raw_ostream &OS) const;
 
-    virtual bool hasComputableLoopEvolution(const Loop *QL) const {
-      // Not computable. A truncate of an addrec is always folded into
-      // the addrec.
-      return false;
-    }
-
     /// Methods for support type inquiry through isa, cast, and dyn_cast:
     static inline bool classof(const SCEVTruncateExpr *S) { return true; }
     static inline bool classof(const SCEV *S) {
@@ -281,12 +275,6 @@ namespace llvm {
     }
 
   public:
-    virtual bool hasComputableLoopEvolution(const Loop *QL) const {
-      // Not computable. An add of an addrec is always folded into the addrec
-      // if the other operands are loop-variant or loop-computable.
-      return false;
-    }
-
     virtual const char *getOperationStr() const { return " + "; }
 
     virtual const Type *getType() const {
@@ -315,12 +303,6 @@ namespace llvm {
     }
 
   public:
-    virtual bool hasComputableLoopEvolution(const Loop *QL) const {
-      // Not computable. A mul of an addrec is always folded into the addrec
-      // if the other operands are loop-variant or loop-computable.
-      return false;
-    }
-
     virtual const char *getOperationStr() const { return " * "; }
 
     /// Methods for support type inquiry through isa, cast, and dyn_cast: