aboutsummaryrefslogtreecommitdiff
path: root/include/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/ConstantHandling.h4
-rw-r--r--include/llvm/Type.h21
2 files changed, 17 insertions, 8 deletions
diff --git a/include/llvm/ConstantHandling.h b/include/llvm/ConstantHandling.h
index cd10f9d0c8..546b37e605 100644
--- a/include/llvm/ConstantHandling.h
+++ b/include/llvm/ConstantHandling.h
@@ -169,12 +169,12 @@ inline Constant *operator^(const Constant &V1, const Constant &V2) {
// Shift Instructions...
inline Constant *operator<<(const Constant &V1, const Constant &V2) {
- assert(V1.getType()->isIntegral() && V2.getType() == Type::UByteTy);
+ assert(V1.getType()->isInteger() && V2.getType() == Type::UByteTy);
return ConstRules::get(V1)->shl(&V1, &V2);
}
inline Constant *operator>>(const Constant &V1, const Constant &V2) {
- assert(V1.getType()->isIntegral() && V2.getType() == Type::UByteTy);
+ assert(V1.getType()->isInteger() && V2.getType() == Type::UByteTy);
return ConstRules::get(V1)->shr(&V1, &V2);
}
diff --git a/include/llvm/Type.h b/include/llvm/Type.h
index a86c220382..3cf08a3bb5 100644
--- a/include/llvm/Type.h
+++ b/include/llvm/Type.h
@@ -121,19 +121,28 @@ public:
/// getDescription - Return the string representation of the type...
inline const std::string &getDescription() const { return Desc; }
- /// isSigned - Return whether a numeric type is signed.
+ /// isSigned - Return whether an integral numeric type is signed. This is
+ /// true for SByteTy, ShortTy, IntTy, LongTy. Note that this is not true for
+ /// Float and Double.
+ //
virtual bool isSigned() const { return 0; }
- /// isUnsigned - Return whether a numeric type is unsigned. This is not
- /// quite the complement of isSigned... nonnumeric types return false as they
- /// do with isSigned.
+ /// isUnsigned - Return whether a numeric type is unsigned. This is not quite
+ /// the complement of isSigned... nonnumeric types return false as they do
+ /// with isSigned. This returns true for UByteTy, UShortTy, UIntTy, and
+ /// ULongTy
///
virtual bool isUnsigned() const { return 0; }
- /// isIntegral - Equilivent to isSigned() || isUnsigned, but with only a
+ /// isInteger - Equilivent to isSigned() || isUnsigned(), but with only a
/// single virtual function invocation.
///
- virtual bool isIntegral() const { return 0; }
+ virtual bool isInteger() const { return 0; }
+
+ /// isIntegral - Returns true if this is an integral type, which is either
+ /// BoolTy or one of the Integer types.
+ ///
+ bool isIntegral() const { return isInteger() || this == BoolTy; }
/// isFloatingPoint - Return true if this is one of the two floating point
/// types