Intel SPMD Program Compiler  1.12.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
Collaboration diagram for SequentialType:
Collaboration graph

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::DIType GetDIType (llvm::DIDescriptor 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 512 of file type.h.

Constructor & Destructor Documentation

◆ SequentialType()

SequentialType::SequentialType ( TypeId  id)

Definition at line 526 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

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 1187 of file type.cpp.

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