summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-12-04 20:54:32 +0000
committerChris Lattner <sabre@nondot.org>2004-12-04 20:54:32 +0000
commita27dd47e7abbf7f7f046df03dc460a8f425a72c2 (patch)
treea65029f48281a946fac226f63c3f5bfde94eb9ae
parent77e8f43c72c0fd8b168c3d20a49e138bb17fd261 (diff)
downloadbcm5719-llvm-a27dd47e7abbf7f7f046df03dc460a8f425a72c2.tar.gz
bcm5719-llvm-a27dd47e7abbf7f7f046df03dc460a8f425a72c2.zip
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. llvm-svn: 18499
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index f84c9e98593..757211639bf 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -635,8 +635,7 @@ SCEVHandle SCEVAddExpr::get(std::vector<SCEVHandle> &Ops) {
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 @@ SCEVHandle SCEVMulExpr::get(std::vector<SCEVHandle> &Ops) {
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;
}
OpenPOWER on IntegriCloud