IntegerTyID, ///< 7: Arbitrary bit width integers
FunctionTyID, ///< 8: Functions
StructTyID, ///< 9: Structures
- PackedStructTyID,///< 10: Packed Structure. This is for bitcode only
- ArrayTyID, ///< 11: Arrays
- PointerTyID, ///< 12: Pointers
- OpaqueTyID, ///< 13: Opaque: type with unknown structure
- VectorTyID, ///< 14: SIMD 'packed' format, or other vector type
+ ArrayTyID, ///< 10: Arrays
+ PointerTyID, ///< 11: Pointers
+ OpaqueTyID, ///< 12: Opaque: type with unknown structure
+ VectorTyID, ///< 13: SIMD 'packed' format, or other vector type
NumTypeIDs, // Must remain as last defined ID
LastPrimitiveTyID = LabelTyID,
///
bool isInteger() const { return ID == IntegerTyID; }
+ /// isIntOrIntVector - Return true if this is an integer type or a vector of
+ /// integer types.
+ ///
+ bool isIntOrIntVector() const;
+
/// isFloatingPoint - Return true if this is one of the two floating point
/// types
bool isFloatingPoint() const { return ID == FloatTyID || ID == DoubleTyID ||
return true;
// If it is not something that can have a size (e.g. a function or label),
// it doesn't have a size.
- if (ID != StructTyID && ID != ArrayTyID && ID != VectorTyID &&
- ID != PackedStructTyID)
+ if (ID != StructTyID && ID != ArrayTyID && ID != VectorTyID)
return false;
// If it is something that can have a size and it's concrete, it definitely
// has a size, otherwise we have to try harder to decide.
///
unsigned getPrimitiveSizeInBits() const;
- /// getForwaredType - Return the type that this type has been resolved to if
+ /// getForwardedType - Return the type that this type has been resolved to if
/// it has been resolved to anything. This is used to implement the
/// union-find algorithm for type resolution, and shouldn't be used by general
/// purpose clients.