Intel® Implicit SPMD Program Compiler (Intel® ISPC)  1.13.0
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
VectorMemberExpr Class Reference
Inheritance diagram for VectorMemberExpr:
Inheritance graph
[legend]
Collaboration diagram for VectorMemberExpr:
Collaboration graph
[legend]

Public Member Functions

 VectorMemberExpr (Expr *e, const char *id, SourcePos p, SourcePos idpos, bool derefLValue)
 
llvm::Value * GetValue (FunctionEmitContext *ctx) const
 
llvm::Value * GetLValue (FunctionEmitContext *ctx) const
 
const TypeGetType () const
 
const TypeGetLValueType () const
 
int getElementNumber () const
 
const TypegetElementType () const
 
- Public Member Functions inherited from MemberExpr
llvm::Value * GetValue (FunctionEmitContext *ctx) const
 
llvm::Value * GetLValue (FunctionEmitContext *ctx) const
 
const TypeGetType () const
 
SymbolGetBaseSymbol () const
 
void Print () const
 
ExprOptimize ()
 
ExprTypeCheck ()
 
int EstimateCost () const
 
std::string getCandidateNearMatches () const
 
 MemberExpr (Expr *expr, const char *identifier, SourcePos pos, SourcePos identifierPos, bool derefLValue, unsigned scid)
 
- Public Member Functions inherited from Expr
 Expr (SourcePos p, unsigned scid)
 
virtual std::pair< llvm::Constant *, bool > GetStorageConstant (const Type *type) const
 
virtual std::pair< llvm::Constant *, bool > GetConstant (const Type *type) const
 
- Public Member Functions inherited from ASTNode
 ASTNode (SourcePos p, unsigned scid)
 
virtual ~ASTNode ()
 
unsigned getValueID () const
 

Static Public Member Functions

static bool classof (VectorMemberExpr const *)
 
static bool classof (ASTNode const *N)
 
- Static Public Member Functions inherited from MemberExpr
static MemberExprcreate (Expr *expr, const char *identifier, SourcePos pos, SourcePos identifierPos, bool derefLvalue)
 
static bool classof (MemberExpr const *)
 
static bool classof (ASTNode const *N)
 
- Static Public Member Functions inherited from Expr
static bool classof (Expr const *)
 
static bool classof (ASTNode const *N)
 
- Static Public Member Functions inherited from ASTNode
static bool classof (ASTNode const *)
 

Private Attributes

const VectorTypeexprVectorType
 
const VectorTypememberType
 

Additional Inherited Members

- Public Types inherited from ASTNode
enum  ASTNodeTy {
  AddressOfExprID, AssignExprID, BinaryExprID, ConstExprID,
  DerefExprID, PtrDerefExprID, RefDerefExprID, ExprListID,
  FunctionCallExprID, FunctionSymbolExprID, IndexExprID, StructMemberExprID,
  VectorMemberExprID, NewExprID, NullPointerExprID, ReferenceExprID,
  SelectExprID, SizeOfExprID, SymbolExprID, SyncExprID,
  TypeCastExprID, UnaryExprID, MaxExprID, AssertStmtID,
  BreakStmtID, CaseStmtID, ContinueStmtID, DeclStmtID,
  DefaultStmtID, DeleteStmtID, DoStmtID, ExprStmtID,
  ForeachActiveStmtID, ForeachStmtID, ForeachUniqueStmtID, ForStmtID,
  GotoStmtID, IfStmtID, LabeledStmtID, PrintStmtID,
  ReturnStmtID, StmtListID, SwitchStmtID, UnmaskedStmtID
}
 
- Public Attributes inherited from MemberExpr
Exprexpr
 
std::string identifier
 
const SourcePos identifierPos
 
bool dereferenceExpr
 
- Public Attributes inherited from ASTNode
SourcePos pos
 
- Protected Attributes inherited from MemberExpr
const Typetype
 
const TypelvalueType
 

Detailed Description

Definition at line 4626 of file expr.cpp.

Constructor & Destructor Documentation

◆ VectorMemberExpr()

VectorMemberExpr::VectorMemberExpr ( Expr e,
const char *  id,
SourcePos  p,
SourcePos  idpos,
bool  derefLValue 
)

Member Function Documentation

◆ classof() [1/2]

static bool VectorMemberExpr::classof ( VectorMemberExpr const *  )
inlinestatic

Definition at line 4630 of file expr.cpp.

◆ classof() [2/2]

static bool VectorMemberExpr::classof ( ASTNode const *  N)
inlinestatic

◆ getElementNumber()

int VectorMemberExpr::getElementNumber ( ) const
virtual

Implements MemberExpr.

Definition at line 4802 of file expr.cpp.

References Error(), MemberExpr::identifier, and lIdentifierToVectorElement().

◆ getElementType()

const Type * VectorMemberExpr::getElementType ( ) const
virtual

Implements MemberExpr.

Definition at line 4809 of file expr.cpp.

References memberType.

◆ GetLValue()

llvm::Value * VectorMemberExpr::GetLValue ( FunctionEmitContext ctx) const
virtual

For expressions that can provide an lvalue (e.g. array indexing), this function should emit IR that computes the expression's lvalue and returns the corresponding llvm::Value. Expressions that can't provide an lvalue should leave this unimplemented; the default implementation returns NULL.

Reimplemented from Expr.

Definition at line 4689 of file expr.cpp.

References MemberExpr::GetLValue(), and MemberExpr::identifier.

◆ GetLValueType()

const Type * VectorMemberExpr::GetLValueType ( ) const
virtual

◆ GetType()

const Type * VectorMemberExpr::GetType ( ) const
virtual

◆ GetValue()

llvm::Value * VectorMemberExpr::GetValue ( FunctionEmitContext ctx) const
virtual

Member Data Documentation

◆ exprVectorType

const VectorType* VectorMemberExpr::exprVectorType
private

Definition at line 4642 of file expr.cpp.

Referenced by GetType(), GetValue(), and VectorMemberExpr().

◆ memberType

const VectorType* VectorMemberExpr::memberType
private

Definition at line 4643 of file expr.cpp.

Referenced by getElementType(), GetType(), GetValue(), and VectorMemberExpr().


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