Eliminate unnecessary APInt construction.
authorZhou Sheng <zhousheng00@gmail.com>
Sat, 7 Apr 2007 17:48:27 +0000 (17:48 +0000)
committerZhou Sheng <zhousheng00@gmail.com>
Sat, 7 Apr 2007 17:48:27 +0000 (17:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35740 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/ScalarEvolution.cpp

index 48b0d6d30e59f256dfde66e332d9c81db3490695..bbb59d52c16e9f29d52b168bdcea909612ed31bb 100644 (file)
@@ -500,7 +500,7 @@ static SCEVHandle PartialFact(SCEVHandle V, unsigned NumSteps) {
   // Handle this case efficiently, it is common to have constant iteration
   // counts while computing loop exit values.
   if (SCEVConstant *SC = dyn_cast<SCEVConstant>(V)) {
-    APInt Val = SC->getValue()->getValue();
+    const APInt& Val = SC->getValue()->getValue();
     APInt Result(Val.getBitWidth(), 1);
     for (; NumSteps; --NumSteps)
       Result *= Val-(NumSteps-1);
@@ -1336,7 +1336,7 @@ SCEVHandle ScalarEvolutionsImpl::createNodeForPHI(PHINode *PN) {
 /// example, turn {4,+,8} -> 4.    (S umod result) should always equal zero.
 static APInt GetConstantFactor(SCEVHandle S) {
   if (SCEVConstant *C = dyn_cast<SCEVConstant>(S)) {
-    APInt V = C->getValue()->getValue();
+    const APInt& V = C->getValue()->getValue();
     if (!V.isMinValue())
       return V;
     else   // Zero is a multiple of everything.
@@ -2096,23 +2096,22 @@ SolveQuadraticEquation(const SCEVAddRecExpr *AddRec) {
   }
 
   uint32_t BitWidth = LC->getValue()->getValue().getBitWidth();
-  APInt L(LC->getValue()->getValue());
-  APInt M(MC->getValue()->getValue());
-  APInt N(MC->getValue()->getValue());
+  const APInt& L = LC->getValue()->getValue();
+  const APInt& M = MC->getValue()->getValue();
+  const APInt& N = MC->getValue()->getValue();
   APInt Two(BitWidth, 2);
   APInt Four(BitWidth, 4);
 
   { 
     using namespace APIntOps;
-    APInt C(L);
+    const APInt& C = L;
     // Convert from chrec coefficients to polynomial coefficients AX^2+BX+C
     // The B coefficient is M-N/2
     APInt B(M);
     B -= sdiv(N,Two);
 
     // The A coefficient is N/2
-    APInt A(N);
-    A = A.sdiv(Two);
+    APInt A(N.sdiv(Two));
 
     // Compute the B^2-4ac term.
     APInt SqrtTerm(B);