Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
clang/include/clang/AST/Type.h
- This file is larger than 256 KB, so syntax highlighting is disabled by default.
Show First 20 Lines • Show All 1,764 Lines • ▼ Show 20 Lines | protected: | ||||
class VectorTypeBitfields { | class VectorTypeBitfields { | ||||
friend class VectorType; | friend class VectorType; | ||||
friend class DependentVectorType; | friend class DependentVectorType; | ||||
unsigned : NumTypeBits; | unsigned : NumTypeBits; | ||||
/// The kind of vector, either a generic vector type or some | /// The kind of vector, either a generic vector type or some | ||||
/// target-specific vector type such as for AltiVec or Neon. | /// target-specific vector type such as for AltiVec or Neon. | ||||
unsigned VecKind : 3; | unsigned VecKind : 4; | ||||
/// The number of elements in the vector. | /// The number of elements in the vector. | ||||
uint32_t NumElements; | uint32_t NumElements; | ||||
}; | }; | ||||
class AttributedTypeBitfields { | class AttributedTypeBitfields { | ||||
friend class AttributedType; | friend class AttributedType; | ||||
unsigned : NumTypeBits; | unsigned : NumTypeBits; | ||||
▲ Show 20 Lines • Show All 262 Lines • ▼ Show 20 Lines | public: | ||||
/// SVE vector or predicate, excluding tuple types such as svint32x4_t. | /// SVE vector or predicate, excluding tuple types such as svint32x4_t. | ||||
bool isVLSTBuiltinType() const; | bool isVLSTBuiltinType() const; | ||||
/// Returns the representative type for the element of an SVE builtin type. | /// Returns the representative type for the element of an SVE builtin type. | ||||
/// This is used to represent fixed-length SVE vectors created with the | /// This is used to represent fixed-length SVE vectors created with the | ||||
/// 'arm_sve_vector_bits' type attribute as VectorType. | /// 'arm_sve_vector_bits' type attribute as VectorType. | ||||
QualType getSveEltType(const ASTContext &Ctx) const; | QualType getSveEltType(const ASTContext &Ctx) const; | ||||
/// Determines if this is a sizeless type supported by the | |||||
/// 'riscv_rvv_vector_bits' type attribute, which can be applied to a single | |||||
/// RVV vector or mask. | |||||
bool isRVVVLSBuiltinType() const; | |||||
/// Returns the representative type for the element of an RVV builtin type. | |||||
/// This is used to represent fixed-length RVV vectors created with the | |||||
/// 'riscv_rvv_vector_bits' type attribute as VectorType. | |||||
QualType getRVVEltType(const ASTContext &Ctx) const; | |||||
/// Types are partitioned into 3 broad categories (C99 6.2.5p1): | /// Types are partitioned into 3 broad categories (C99 6.2.5p1): | ||||
/// object types, function types, and incomplete types. | /// object types, function types, and incomplete types. | ||||
/// Return true if this is an incomplete type. | /// Return true if this is an incomplete type. | ||||
/// A type that can describe objects, but which lacks information needed to | /// A type that can describe objects, but which lacks information needed to | ||||
/// determine its size (e.g. void, or a fwd declared struct). Clients of this | /// determine its size (e.g. void, or a fwd declared struct). Clients of this | ||||
/// routine will need to determine if the size is actually required. | /// routine will need to determine if the size is actually required. | ||||
/// | /// | ||||
▲ Show 20 Lines • Show All 1,337 Lines • ▼ Show 20 Lines | enum VectorKind { | ||||
/// is ARM Neon polynomial vector | /// is ARM Neon polynomial vector | ||||
NeonPolyVector, | NeonPolyVector, | ||||
/// is AArch64 SVE fixed-length data vector | /// is AArch64 SVE fixed-length data vector | ||||
SveFixedLengthDataVector, | SveFixedLengthDataVector, | ||||
/// is AArch64 SVE fixed-length predicate vector | /// is AArch64 SVE fixed-length predicate vector | ||||
SveFixedLengthPredicateVector | SveFixedLengthPredicateVector, | ||||
/// is RISC-V RVV fixed-length data vector | |||||
RVVFixedLengthDataVector, | |||||
}; | }; | ||||
protected: | protected: | ||||
friend class ASTContext; // ASTContext creates these. | friend class ASTContext; // ASTContext creates these. | ||||
/// The element type of the vector. | /// The element type of the vector. | ||||
QualType ElementType; | QualType ElementType; | ||||
▲ Show 20 Lines • Show All 4,121 Lines • Show Last 20 Lines |