OSDN Git Service

Check for the short-circuiting condition before performing
authorDan Gohman <gohman@apple.com>
Sun, 14 Jun 2009 22:53:57 +0000 (22:53 +0000)
committerDan Gohman <gohman@apple.com>
Sun, 14 Jun 2009 22:53:57 +0000 (22:53 +0000)
the potentially expensive erase.

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

lib/Analysis/ScalarEvolution.cpp

index ee077d5..a2ab6e6 100644 (file)
@@ -1012,8 +1012,8 @@ SCEVHandle ScalarEvolution::getAddExpr(SmallVectorImpl<SCEVHandle> &Ops) {
       // We found two constants, fold them together!
       Ops[0] = getConstant(LHSC->getValue()->getValue() +
                            RHSC->getValue()->getValue());
+      if (Ops.size() == 2) return Ops[0];
       Ops.erase(Ops.begin()+1);  // Erase the folded element
-      if (Ops.size() == 1) return Ops[0];
       LHSC = cast<SCEVConstant>(Ops[0]);
     }