Intel® Implicit SPMD Program Compiler (Intel® ISPC)
1.13.0
|
Abstract base class for types that represent sequences. More...
#include <type.h>
Public Member Functions | |
virtual const Type * | GetElementType () const =0 |
const Type * | GetElementType (int index) const |
Public Member Functions inherited from CollectionType | |
virtual int | GetElementCount () const =0 |
Public Member Functions inherited from Type | |
virtual bool | IsBoolType () const =0 |
virtual bool | IsFloatType () const =0 |
virtual bool | IsIntType () const =0 |
virtual bool | IsUnsignedType () const =0 |
bool | IsPointerType () const |
bool | IsArrayType () const |
bool | IsReferenceType () const |
bool | IsVoidType () const |
virtual bool | IsConstType () const =0 |
bool | IsNumericType () const |
virtual Variability | GetVariability () const =0 |
bool | IsUniformType () const |
bool | IsVaryingType () const |
bool | IsSOAType () const |
int | GetSOAWidth () const |
bool | HasUnboundVariability () const |
virtual const Type * | ResolveUnboundVariability (Variability v) const =0 |
virtual const Type * | GetAsUniformType () const =0 |
virtual const Type * | GetAsVaryingType () const =0 |
virtual const Type * | GetAsUnboundVariabilityType () const =0 |
virtual const Type * | GetAsSOAType (int width) const =0 |
virtual const Type * | GetAsUnsignedType () const |
virtual const Type * | GetBaseType () const =0 |
virtual const Type * | GetReferenceTarget () const |
virtual const Type * | GetAsConstType () const =0 |
virtual const Type * | GetAsNonConstType () const =0 |
virtual std::string | GetString () const =0 |
virtual std::string | Mangle () const =0 |
virtual std::string | GetCDeclaration (const std::string &name) const =0 |
virtual llvm::Type * | LLVMType (llvm::LLVMContext *ctx) const =0 |
virtual llvm::Type * | LLVMStorageType (llvm::LLVMContext *ctx) const |
virtual llvm::DIType * | GetDIType (llvm::DIScope *scope) const =0 |
Protected Member Functions | |
SequentialType (TypeId id) | |
Protected Member Functions inherited from CollectionType | |
CollectionType (TypeId id) | |
Protected Member Functions inherited from Type | |
Type (TypeId id) | |
Additional Inherited Members | |
Static Public Member Functions inherited from Type | |
static bool | Equal (const Type *a, const Type *b) |
static bool | EqualIgnoringConst (const Type *a, const Type *b) |
static const Type * | MoreGeneralType (const Type *type0, const Type *type1, SourcePos pos, const char *reason, bool forceVarying=false, int vecSize=0) |
static bool | IsBasicType (const Type *type) |
Public Attributes inherited from Type | |
const TypeId | typeId |
Abstract base class for types that represent sequences.
SequentialType is an abstract base class that adds interface routines for types that represent linear sequences of other types (i.e., arrays and vectors).
|
pure virtual |
Returns the Type of the elements that the sequence stores; for SequentialTypes, all elements have the same type .
Implemented in VectorType, and ArrayType.
Referenced by FunctionEmitContext::AddElementOffset(), FunctionEmitContext::GetElementPtrInst(), IndexExpr::GetLValueType(), IndexExpr::GetType(), IndexExpr::GetValue(), lCheckIndicesVersusBounds(), and lRecursiveCheckValidParamType().
|
virtual |
SequentialType provides an implementation of this CollectionType method, just passing the query on to the GetElementType(void) implementation, since all of the elements of a SequentialType have the same type.
Implements CollectionType.