]> granicus.if.org Git - llvm/commitdiff
[APInt] Take advantage of new operator*=(uint64_t) to remove a temporary APInt.
authorCraig Topper <craig.topper@gmail.com>
Mon, 8 May 2017 04:55:12 +0000 (04:55 +0000)
committerCraig Topper <craig.topper@gmail.com>
Mon, 8 May 2017 04:55:12 +0000 (04:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@302403 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/APInt.cpp

index e2cfb90d9e254adebbc372de78e7b866fe87f25b..a337b5f8727184d04611f70a238bc1477e9c9c09 100644 (file)
@@ -1842,10 +1842,6 @@ void APInt::fromString(unsigned numbits, StringRef str, uint8_t radix) {
   // Figure out if we can shift instead of multiply
   unsigned shift = (radix == 16 ? 4 : radix == 8 ? 3 : radix == 2 ? 1 : 0);
 
-  // Set up an APInt for the radix multiplier outside the loop so we don't
-  // constantly construct/destruct it.
-  APInt apradix(getBitWidth(), radix);
-
   // Enter digit traversal loop
   for (StringRef::iterator e = str.end(); p != e; ++p) {
     unsigned digit = getDigit(*p, radix);
@@ -1856,7 +1852,7 @@ void APInt::fromString(unsigned numbits, StringRef str, uint8_t radix) {
       if (shift)
         *this <<= shift;
       else
-        *this *= apradix;
+        *this *= radix;
     }
 
     // Add in the digit we just interpreted