[llvm-commits] CVS: llvm/lib/Analysis/ScalarEvolution.cpp
Chris Lattner
lattner at cs.uiuc.edu
Sat Dec 4 12:54:47 PST 2004
Changes in directory llvm/lib/Analysis:
ScalarEvolution.cpp updated: 1.28 -> 1.29
---
Log message:
This patch prevents an infinite recursion while compiling 103.su2cor.
All SPEC CFP 95 programs now work, though the JIT isn't loading -lf2c right
so they aren't testing correctly.
---
Diffs of the changes: (+3 -3)
Index: llvm/lib/Analysis/ScalarEvolution.cpp
diff -u llvm/lib/Analysis/ScalarEvolution.cpp:1.28 llvm/lib/Analysis/ScalarEvolution.cpp:1.29
--- llvm/lib/Analysis/ScalarEvolution.cpp:1.28 Mon Oct 25 13:40:08 2004
+++ llvm/lib/Analysis/ScalarEvolution.cpp Sat Dec 4 14:54:32 2004
@@ -635,8 +635,7 @@
for (unsigned MulOp = 0, e = Mul->getNumOperands(); MulOp != e; ++MulOp) {
SCEV *MulOpSCEV = Mul->getOperand(MulOp);
for (unsigned AddOp = 0, e = Ops.size(); AddOp != e; ++AddOp)
- if (MulOpSCEV == Ops[AddOp] &&
- (Mul->getNumOperands() != 2 || !isa<SCEVConstant>(MulOpSCEV))) {
+ if (MulOpSCEV == Ops[AddOp] && !isa<SCEVConstant>(MulOpSCEV)) {
// Fold W + X + (X * Y * Z) --> W + (X * ((Y*Z)+1))
SCEVHandle InnerMul = Mul->getOperand(MulOp == 0);
if (Mul->getNumOperands() != 2) {
@@ -937,7 +936,8 @@
std::vector<SCEV*> SCEVOps(Ops.begin(), Ops.end());
SCEVCommutativeExpr *&Result = SCEVCommExprs[std::make_pair(scMulExpr,
SCEVOps)];
- if (Result == 0) Result = new SCEVMulExpr(Ops);
+ if (Result == 0)
+ Result = new SCEVMulExpr(Ops);
return Result;
}
More information about the llvm-commits
mailing list