- Renamed Type::isIntegral() to Type::isInteger()

- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.
SCVS: ----------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3572 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2002-09-03 01:05:48 +00:00
parent 625ea21205
commit ce8a14915d
5 changed files with 24 additions and 15 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -30,7 +30,7 @@ ExprType::ExprType(const ConstantInt *scale, Value *var,
const ConstantInt *offset) {
Scale = var ? scale : 0; Var = var; Offset = offset;
ExprTy = Scale ? ScaledLinear : (Var ? Linear : Constant);
if (Scale && Scale->equalsInt(0)) { // Simplify 0*Var + const
if (Scale && Scale->isNullValue()) { // Simplify 0*Var + const
Scale = 0; Var = 0;
ExprTy = Constant;
}
@ -245,9 +245,9 @@ ExprType ClassifyExpression(Value *Expr) {
return Expr;
case Value::ConstantVal: // Constant value, just return constant
Constant *CPV = cast<Constant>(Expr);
if (CPV->getType()->isIntegral()) { // It's an integral constant!
if (CPV->getType()->isInteger()) { // It's an integral constant!
ConstantInt *CPI = cast<ConstantInt>(Expr);
return ExprType(CPI->equalsInt(0) ? 0 : CPI);
return ExprType(CPI->isNullValue() ? 0 : CPI);
}
return Expr;
}

View File

@ -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);
}

View File

@ -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);
}