Add two utility methods into ConstantInt.
authorZhou Sheng <zhousheng00@gmail.com>
Fri, 30 Mar 2007 03:22:55 +0000 (03:22 +0000)
committerZhou Sheng <zhousheng00@gmail.com>
Fri, 30 Mar 2007 03:22:55 +0000 (03:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35501 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Constants.h

index 86fc2e70181460f7bb9e96d4ec274e715200fa78..7e9f5d07475874a84415de2aa12d47e85e7b672d 100644 (file)
@@ -174,6 +174,22 @@ public:
       return Val.isMinValue();
   }
 
+  /// This function will return true iff this constant represents a value with
+  /// active bits bigger than 64 bits or a value greater than the given uint64_t
+  /// value.
+  /// @returns true iff this constant is greater or equal to the given number.
+  /// @brief Determine if the value is greater or equal to the given number.
+  bool greaterOrEqual(uint64_t Num) {
+    return Val.getActiveBits() > 64 || Val.getZExtValue() > Num;
+  }
+
+  /// @returns the 64-bit value of this constant if its active bits number is 
+  /// not greater than 64, otherwise, just return the given uint64_t number.
+  /// @brief Get the constant's value if possible.
+  uint64_t getLimitedValue(uint64_t Limit) {
+    return (Val.getActiveBits() > 64) ? Limit : Val.getZExtValue();
+  }
+
   /// @returns the value for an integer constant of the given type that has all
   /// its bits set to true.
   /// @brief Get the all ones value