summaryrefslogtreecommitdiff
path: root/include/llvm/ConstPoolVals.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/ConstPoolVals.h')
-rw-r--r--include/llvm/ConstPoolVals.h24
1 files changed, 22 insertions, 2 deletions
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<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