VectorType(const VectorType &) = delete;
VectorType &operator=(const VectorType &) = delete;
- /// Get the number of elements in this vector. It does not make sense to call
- /// this function on a scalable vector, and this will be moved into
- /// FixedVectorType in a future commit
- LLVM_ATTRIBUTE_DEPRECATED(
- inline unsigned getNumElements() const,
- "Calling this function via a base VectorType is deprecated. Either call "
- "getElementCount() and handle the case where Scalable is true or cast to "
- "FixedVectorType.");
-
Type *getElementType() const { return ContainedType; }
/// This static method is the primary way to construct an VectorType.
}
};
-unsigned VectorType::getNumElements() const {
- ElementCount EC = getElementCount();
-#ifdef STRICT_FIXED_SIZE_VECTORS
- assert(!EC.isScalable() &&
- "Request for fixed number of elements from scalable vector");
-#else
- if (EC.isScalable())
- WithColor::warning()
- << "The code that requested the fixed number of elements has made the "
- "assumption that this vector is not scalable. This assumption was "
- "not correct, and this may lead to broken code\n";
-#endif
- return EC.getKnownMinValue();
-}
-
/// Class to represent fixed width SIMD vectors
class FixedVectorType : public VectorType {
protected: