Intel® Implicit SPMD Program Compiler (Intel® ISPC)
1.13.0
|
Abstract base class for types that represent collections of other types. More...
#include <type.h>
Public Member Functions | |
virtual int | GetElementCount () const =0 |
virtual const Type * | GetElementType (int index) 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 | |
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 collections of other types.
This is a common base class that StructTypes, ArrayTypes, and VectorTypes all inherit from.
|
pure virtual |
Returns the total number of elements in the collection.
Implemented in StructType, VectorType, and ArrayType.
Referenced by FunctionEmitContext::gather(), InitSymbol(), lCheckAllOffSafety(), lCheckIndicesVersusBounds(), lGetExprListConstant(), FunctionEmitContext::loadUniformFromSOA(), lUniformValueToVarying(), FunctionEmitContext::maskedStore(), and FunctionEmitContext::storeUniformToSOA().
|
pure virtual |
Returns the type of the element given by index. (The value of index must be between 0 and GetElementCount()-1.
Implemented in StructType, and SequentialType.
Referenced by FunctionEmitContext::AddElementOffset(), FunctionEmitContext::gather(), InitSymbol(), lGetExprListConstant(), lUniformValueToVarying(), FunctionEmitContext::maskedStore(), FunctionEmitContext::scatter(), and FunctionEmitContext::storeUniformToSOA().