Intel® Implicit SPMD Program Compiler (Intel® ISPC)
1.13.0
|
Public Member Functions | |
StructMemberExpr (Expr *e, const char *id, SourcePos p, SourcePos idpos, bool derefLValue) | |
const Type * | GetType () const |
const Type * | GetLValueType () const |
int | getElementNumber () const |
const Type * | getElementType () const |
Public Member Functions inherited from MemberExpr | |
llvm::Value * | GetValue (FunctionEmitContext *ctx) const |
llvm::Value * | GetLValue (FunctionEmitContext *ctx) const |
const Type * | GetType () const |
Symbol * | GetBaseSymbol () const |
void | Print () const |
Expr * | Optimize () |
Expr * | TypeCheck () |
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 (StructMemberExpr const *) |
static bool | classof (ASTNode const *N) |
Static Public Member Functions inherited from MemberExpr | |
static MemberExpr * | create (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 Member Functions | |
const StructType * | getStructType () const |
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 | |
Expr * | expr |
std::string | identifier |
const SourcePos | identifierPos |
bool | dereferenceExpr |
Public Attributes inherited from ASTNode | |
SourcePos | pos |
Protected Attributes inherited from MemberExpr | |
const Type * | type |
const Type * | lvalueType |
|
inlinestatic |
|
inlinestatic |
Definition at line 4489 of file expr.cpp.
References IndexExpr::GetLValueType(), IndexExpr::GetType(), ASTNode::getValueID(), and ASTNode::StructMemberExprID.
|
virtual |
Implements MemberExpr.
Definition at line 4580 of file expr.cpp.
References Error(), MemberExpr::getCandidateNearMatches(), StructType::GetElementNumber(), StructType::GetString(), getStructType(), MemberExpr::identifier, and MemberExpr::identifierPos.
Referenced by VectorMemberExpr::classof().
|
virtual |
Implements MemberExpr.
Definition at line 4593 of file expr.cpp.
References StructType::GetElementType(), getStructType(), and MemberExpr::identifier.
Referenced by VectorMemberExpr::classof(), and GetLValueType().
|
virtual |
Returns the type of the value returned by GetLValueType(); this should be a pointer type of some sort (uniform or varying).
Reimplemented from Expr.
Definition at line 4548 of file expr.cpp.
References AssertPos, MemberExpr::dereferenceExpr, Module::errorCount, MemberExpr::expr, PointerType::GetAsFrozenSlice(), getElementType(), Expr::GetLValueType(), Expr::GetType(), PointerType::GetUniform(), PointerType::GetVarying(), Type::IsUniformType(), MemberExpr::lvalueType, and m.
Referenced by VectorMemberExpr::classof(), and GetType().
|
private |
Returns the type of the underlying struct that we're returning a member of.
Definition at line 4603 of file expr.cpp.
References AssertPos, MemberExpr::dereferenceExpr, MemberExpr::expr, PointerType::GetBaseType(), Expr::GetLValueType(), ReferenceType::GetReferenceTarget(), Expr::GetType(), and MemberExpr::type.
Referenced by getElementNumber(), getElementType(), and GetType().
|
virtual |
Returns the Type of the expression.
Implements Expr.
Definition at line 4503 of file expr.cpp.
References AssertPos, Type::Equal(), Error(), Module::errorCount, MemberExpr::expr, Type::GetAsUniformType(), Type::GetAsVaryingType(), Type::GetBaseType(), MemberExpr::getCandidateNearMatches(), StructType::GetElementType(), GetLValueType(), StructType::GetString(), getStructType(), Expr::GetType(), MemberExpr::identifier, MemberExpr::identifierPos, Type::IsSOAType(), Type::IsUniformType(), Type::IsVaryingType(), MemberExpr::lvalueType, m, and MemberExpr::type.
Referenced by VectorMemberExpr::classof().