Intel SPMD Program Compiler  1.9.1
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
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 llvm::Constant * 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 4893 of file expr.cpp.

Constructor & Destructor Documentation

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

Member Function Documentation

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

Definition at line 4899 of file expr.cpp.

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

Definition at line 4900 of file expr.cpp.

References ASTNode::getValueID(), and ASTNode::VectorMemberExprID.

int VectorMemberExpr::getElementNumber ( ) const
virtual

Implements MemberExpr.

Definition at line 5090 of file expr.cpp.

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

const Type * VectorMemberExpr::getElementType ( ) const
virtual

Implements MemberExpr.

Definition at line 5100 of file expr.cpp.

References memberType.

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

Definition at line 4971 of file expr.cpp.

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

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

Member Data Documentation

const VectorType* VectorMemberExpr::exprVectorType
private

Definition at line 4913 of file expr.cpp.

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

const VectorType* VectorMemberExpr::memberType
private

Definition at line 4914 of file expr.cpp.

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


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