OSDN Git Service

[APInt] Add an isNullValue method to check for all bits being zero. Use it in a coupl...
authorCraig Topper <craig.topper@gmail.com>
Fri, 28 Apr 2017 21:48:06 +0000 (21:48 +0000)
committerCraig Topper <craig.topper@gmail.com>
Fri, 28 Apr 2017 21:48:06 +0000 (21:48 +0000)
I used Null rather than Zero to match the getNullValue method name.

There are some other places outside APInt where isNullValue would be more readable than isMinValue even though they do the same thing. I'll update those in future patches.

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

include/llvm/ADT/APInt.h

index 0338bee..0f82654 100644 (file)
@@ -366,7 +366,7 @@ public:
   /// that 0 is not a positive value.
   ///
   /// \returns true if this APInt is positive.
-  bool isStrictlyPositive() const { return isNonNegative() && !!*this; }
+  bool isStrictlyPositive() const { return isNonNegative() && !isNullValue(); }
 
   /// \brief Determine if all bits are set
   ///
@@ -377,6 +377,11 @@ public:
     return countPopulationSlowCase() == BitWidth;
   }
 
+  /// \brief Determine if all bits are set
+  ///
+  /// This checks to see if the value has all bits of the APInt are set or not.
+  bool isNullValue() const { return !*this; }
+
   /// \brief Determine if this is the largest unsigned value.
   ///
   /// This checks to see if the value of this APInt is the maximum unsigned
@@ -395,7 +400,7 @@ public:
   ///
   /// This checks to see if the value of this APInt is the minimum unsigned
   /// value for the APInt's bit width.
-  bool isMinValue() const { return !*this; }
+  bool isMinValue() const { return isNullValue(); }
 
   /// \brief Determine if this is the smallest signed value.
   ///
@@ -1711,7 +1716,7 @@ public:
       return VAL - 1;
 
     // Handle the zero case.
-    if (!getBoolValue())
+    if (isNullValue())
       return UINT32_MAX;
 
     // The non-zero case is handled by computing: