From 230365abf7cf242fcc0bdca4e81f33de1fe136c3 Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Fri, 20 Jul 2001 21:11:07 +0000 Subject: Provide simpler ways to extract the value of an integer constant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ConstPoolVals.h | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/llvm/ConstPoolVals.h b/include/llvm/ConstPoolVals.h index aa2e2ff480..c45c317e3c 100644 --- a/include/llvm/ConstPoolVals.h +++ b/include/llvm/ConstPoolVals.h @@ -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 &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 -- cgit v1.2.3