Changes in directory llvm/include/llvm/Analysis:
ScalarEvolutionExpander.h updated: 1.4 -> 1.5 ScalarEvolutionExpressions.h updated: 1.6 -> 1.7 --- Log message: Fix Transforms/IndVarsSimplify/2006-03-31-NegativeStride.ll and PR726: http://llvm.cs.uiuc.edu/PR726 by performing consistent signed division, not consistent unsigned division when evaluating scev's. Do not touch udivs. --- Diffs of the changes: (+12 -12) ScalarEvolutionExpander.h | 2 +- ScalarEvolutionExpressions.h | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) Index: llvm/include/llvm/Analysis/ScalarEvolutionExpander.h diff -u llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.4 llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.5 --- llvm/include/llvm/Analysis/ScalarEvolutionExpander.h:1.4 Sat Feb 4 03:51:33 2006 +++ llvm/include/llvm/Analysis/ScalarEvolutionExpander.h Fri Mar 31 22:48:52 2006 @@ -136,7 +136,7 @@ Value *visitMulExpr(SCEVMulExpr *S); - Value *visitUDivExpr(SCEVUDivExpr *S) { + Value *visitSDivExpr(SCEVSDivExpr *S) { const Type *Ty = S->getType(); Value *LHS = expandInTy(S->getLHS(), Ty); Value *RHS = expandInTy(S->getRHS(), Ty); Index: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h diff -u llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:1.6 llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:1.7 --- llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:1.6 Thu Apr 21 15:16:32 2005 +++ llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h Fri Mar 31 22:48:52 2006 @@ -23,7 +23,7 @@ enum SCEVTypes { // These should be ordered in terms of increasing complexity to make the // folders simpler. - scConstant, scTruncate, scZeroExtend, scAddExpr, scMulExpr, scUDivExpr, + scConstant, scTruncate, scZeroExtend, scAddExpr, scMulExpr, scSDivExpr, scAddRecExpr, scUnknown, scCouldNotCompute }; @@ -293,16 +293,16 @@ //===--------------------------------------------------------------------===// - /// SCEVUDivExpr - This class represents a binary unsigned division operation. + /// SCEVSDivExpr - This class represents a binary unsigned division operation. /// - class SCEVUDivExpr : public SCEV { + class SCEVSDivExpr : public SCEV { SCEVHandle LHS, RHS; - SCEVUDivExpr(const SCEVHandle &lhs, const SCEVHandle &rhs) - : SCEV(scUDivExpr), LHS(lhs), RHS(rhs) {} + SCEVSDivExpr(const SCEVHandle &lhs, const SCEVHandle &rhs) + : SCEV(scSDivExpr), LHS(lhs), RHS(rhs) {} - virtual ~SCEVUDivExpr(); + virtual ~SCEVSDivExpr(); public: - /// get method - This just gets and returns a new SCEVUDiv object. + /// get method - This just gets and returns a new SCEVSDiv object. /// static SCEVHandle get(const SCEVHandle &LHS, const SCEVHandle &RHS); @@ -334,9 +334,9 @@ void print(std::ostream &OS) const; /// Methods for support type inquiry through isa, cast, and dyn_cast: - static inline bool classof(const SCEVUDivExpr *S) { return true; } + static inline bool classof(const SCEVSDivExpr *S) { return true; } static inline bool classof(const SCEV *S) { - return S->getSCEVType() == scUDivExpr; + return S->getSCEVType() == scSDivExpr; } }; @@ -496,8 +496,8 @@ return ((SC*)this)->visitAddExpr((SCEVAddExpr*)S); case scMulExpr: return ((SC*)this)->visitMulExpr((SCEVMulExpr*)S); - case scUDivExpr: - return ((SC*)this)->visitUDivExpr((SCEVUDivExpr*)S); + case scSDivExpr: + return ((SC*)this)->visitSDivExpr((SCEVSDivExpr*)S); case scAddRecExpr: return ((SC*)this)->visitAddRecExpr((SCEVAddRecExpr*)S); case scUnknown: _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits