Intel® Implicit SPMD Program Compiler (Intel® ISPC)  1.13.0
Public Member Functions | Protected Member Functions | List of all members
SequentialType Class Referenceabstract

Abstract base class for types that represent sequences. More...

#include <type.h>

Inheritance diagram for SequentialType:
Inheritance graph
[legend]
Collaboration diagram for SequentialType:
Collaboration graph
[legend]

Public Member Functions

virtual const TypeGetElementType () const =0
 
const TypeGetElementType (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 TypeResolveUnboundVariability (Variability v) const =0
 
virtual const TypeGetAsUniformType () const =0
 
virtual const TypeGetAsVaryingType () const =0
 
virtual const TypeGetAsUnboundVariabilityType () const =0
 
virtual const TypeGetAsSOAType (int width) const =0
 
virtual const TypeGetAsUnsignedType () const
 
virtual const TypeGetBaseType () const =0
 
virtual const TypeGetReferenceTarget () const
 
virtual const TypeGetAsConstType () const =0
 
virtual const TypeGetAsNonConstType () 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 TypeMoreGeneralType (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
 

Detailed Description

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).

Definition at line 498 of file type.h.

Constructor & Destructor Documentation

◆ SequentialType()

SequentialType::SequentialType ( TypeId  id)
inlineprotected

Definition at line 512 of file type.h.

Member Function Documentation

◆ GetElementType() [1/2]

virtual const Type* SequentialType::GetElementType ( ) const
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().

◆ GetElementType() [2/2]

const Type * SequentialType::GetElementType ( int  index) const
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.

Definition at line 1069 of file type.cpp.


The documentation for this class was generated from the following files: