Provide simpler ways to extract the value of an integer constant.
authorVikram S. Adve <vadve@cs.uiuc.edu>
Fri, 20 Jul 2001 21:11:07 +0000 (21:11 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Fri, 20 Jul 2001 21:11:07 +0000 (21:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ConstPoolVals.h

index aa2e2ff480902e7eafea058a2adba9c443a2ad45..c45c317e3c6b713816058260afe07da0512b1279 100644 (file)
@@ -110,11 +110,11 @@ public:
     return Val.Unsigned == V;
   }
 
-  // isIntegral - Equilivent to isSigned() || isUnsigned, but with only a single
+  // isIntegral - Equivalent to isSigned() || isUnsigned, but with only a single
   // virtual function invocation.
   //
   virtual bool isIntegral() const { return 1; }
-
+  
   // ConstPoolInt::get static method: return a constant pool int with the
   // specified value.  as above, we work only with very small values here.
   //
@@ -224,4 +224,24 @@ public:
   inline const vector<Use> &getValues() const { return Operands; }
 };
 
+//===---------------------------------------------------------------------------
+// External functions
+//
+
+// Convenience functions to get the value of an integer constant, for an
+// appropriate integer or non-integer type that can be held in an integer.
+// The type of the argument must be the following:
+//   GetSignedIntConstantValue:   signed integer or bool
+//   GetUnsignedIntConstantValue: unsigned integer, bool, or pointer
+//   GetConstantValueAsSignedInt: any of the above, but the value
+//                               must fit into a int64_t.
+// 
+// isValidConstant is set to true if a valid constant was found.
+// 
+int64_t         GetSignedIntConstantValue      (const Value* val, bool& isValidConst);
+uint64_t GetUnsignedIntConstantValue   (const Value* val, bool& isValidConst);
+int64_t         GetConstantValueAsSignedInt    (const Value* val, bool& isValidConst);
+
+//===---------------------------------------------------------------------------
+
 #endif