Intel® Implicit SPMD Program Compiler (Intel® ISPC)
1.13.0
|
Expression representing a compile-time constant value. More...
#include <expr.h>
Public Member Functions | |
ConstExpr (const Type *t, int8_t i, SourcePos p) | |
ConstExpr (const Type *t, int8_t *i, SourcePos p) | |
ConstExpr (const Type *t, uint8_t u, SourcePos p) | |
ConstExpr (const Type *t, uint8_t *u, SourcePos p) | |
ConstExpr (const Type *t, int16_t i, SourcePos p) | |
ConstExpr (const Type *t, int16_t *i, SourcePos p) | |
ConstExpr (const Type *t, uint16_t u, SourcePos p) | |
ConstExpr (const Type *t, uint16_t *u, SourcePos p) | |
ConstExpr (const Type *t, int32_t i, SourcePos p) | |
ConstExpr (const Type *t, int32_t *i, SourcePos p) | |
ConstExpr (const Type *t, uint32_t u, SourcePos p) | |
ConstExpr (const Type *t, uint32_t *u, SourcePos p) | |
ConstExpr (const Type *t, float f, SourcePos p) | |
ConstExpr (const Type *t, float *f, SourcePos p) | |
ConstExpr (const Type *t, double d, SourcePos p) | |
ConstExpr (const Type *t, double *d, SourcePos p) | |
ConstExpr (const Type *t, int64_t i, SourcePos p) | |
ConstExpr (const Type *t, int64_t *i, SourcePos p) | |
ConstExpr (const Type *t, uint64_t i, SourcePos p) | |
ConstExpr (const Type *t, uint64_t *i, SourcePos p) | |
ConstExpr (const Type *t, bool b, SourcePos p) | |
ConstExpr (const Type *t, bool *b, SourcePos p) | |
ConstExpr (ConstExpr *old, double *values) | |
ConstExpr (ConstExpr *old, SourcePos pos) | |
llvm::Value * | GetValue (FunctionEmitContext *ctx) const |
const Type * | GetType () const |
void | Print () const |
std::pair< llvm::Constant *, bool > | GetStorageConstant (const Type *type) const |
std::pair< llvm::Constant *, bool > | GetConstant (const Type *constType) const |
Expr * | TypeCheck () |
Expr * | Optimize () |
int | EstimateCost () const |
int | GetValues (bool *, bool forceVarying=false) const |
int | GetValues (int8_t *, bool forceVarying=false) const |
int | GetValues (uint8_t *, bool forceVarying=false) const |
int | GetValues (int16_t *, bool forceVarying=false) const |
int | GetValues (uint16_t *, bool forceVarying=false) const |
int | GetValues (int32_t *, bool forceVarying=false) const |
int | GetValues (uint32_t *, bool forceVarying=false) const |
int | GetValues (float *, bool forceVarying=false) const |
int | GetValues (int64_t *, bool forceVarying=false) const |
int | GetValues (uint64_t *, bool forceVarying=false) const |
int | GetValues (double *, bool forceVarying=false) const |
int | Count () const |
Public Member Functions inherited from Expr | |
Expr (SourcePos p, unsigned scid) | |
virtual llvm::Value * | GetLValue (FunctionEmitContext *ctx) const |
virtual const Type * | GetLValueType () const |
virtual Symbol * | GetBaseSymbol () const |
Public Member Functions inherited from ASTNode | |
ASTNode (SourcePos p, unsigned scid) | |
virtual | ~ASTNode () |
unsigned | getValueID () const |
Static Public Member Functions | |
static bool | classof (ConstExpr 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 | |
AtomicType::BasicType | getBasicType () const |
Private Attributes | |
const Type * | type |
union { | |
int8_t int8Val [ISPC_MAX_NVEC] | |
uint8_t uint8Val [ISPC_MAX_NVEC] | |
int16_t int16Val [ISPC_MAX_NVEC] | |
uint16_t uint16Val [ISPC_MAX_NVEC] | |
int32_t int32Val [ISPC_MAX_NVEC] | |
uint32_t uint32Val [ISPC_MAX_NVEC] | |
bool boolVal [ISPC_MAX_NVEC] | |
float floatVal [ISPC_MAX_NVEC] | |
double doubleVal [ISPC_MAX_NVEC] | |
int64_t int64Val [ISPC_MAX_NVEC] | |
uint64_t uint64Val [ISPC_MAX_NVEC] | |
}; | |
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 ASTNode | |
SourcePos | pos |
Expression representing a compile-time constant value.
This class can currently represent compile-time constants of anything that is an AtomicType or an EnumType; for anything more complex, we don't currently have a representation of a compile-time constant that can be further reasoned about.
Create a ConstExpr from a uniform int8 value
Definition at line 5017 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), int8Val, type, and AtomicType::UniformInt8.
Create a ConstExpr from a varying int8 value
Definition at line 5024 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), int8Val, type, AtomicType::UniformInt8, and AtomicType::VaryingInt8.
Create a ConstExpr from a uniform uint8 value
Definition at line 5033 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), type, uint8Val, and AtomicType::UniformUInt8.
Create a ConstExpr from a varying uint8 value
Definition at line 5040 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), type, uint8Val, AtomicType::UniformUInt8, and AtomicType::VaryingUInt8.
Create a ConstExpr from a uniform int16 value
Definition at line 5049 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), int16Val, type, and AtomicType::UniformInt16.
Create a ConstExpr from a varying int16 value
Definition at line 5056 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), int16Val, type, AtomicType::UniformInt16, and AtomicType::VaryingInt16.
Create a ConstExpr from a uniform uint16 value
Definition at line 5065 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), type, uint16Val, and AtomicType::UniformUInt16.
Create a ConstExpr from a varying uint16 value
Definition at line 5072 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), type, uint16Val, AtomicType::UniformUInt16, and AtomicType::VaryingUInt16.
Create a ConstExpr from a uniform int32 value
Definition at line 5081 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), int32Val, type, and AtomicType::UniformInt32.
Create a ConstExpr from a varying int32 value
Definition at line 5088 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), int32Val, type, AtomicType::UniformInt32, and AtomicType::VaryingInt32.
Create a ConstExpr from a uniform uint32 value
Definition at line 5097 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), Type::IsUniformType(), type, uint32Val, and AtomicType::UniformUInt32.
Create a ConstExpr from a varying uint32 value
Definition at line 5105 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), type, uint32Val, AtomicType::UniformUInt32, and AtomicType::VaryingUInt32.
Create a ConstExpr from a uniform float value
Definition at line 5115 of file expr.cpp.
References AssertPos, Type::Equal(), floatVal, Type::GetAsConstType(), type, and AtomicType::UniformFloat.
Create a ConstExpr from a varying float value
Definition at line 5122 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), floatVal, Type::GetAsConstType(), type, AtomicType::UniformFloat, and AtomicType::VaryingFloat.
Create a ConstExpr from a uniform double value
Definition at line 5163 of file expr.cpp.
References AssertPos, doubleVal, Type::Equal(), Type::GetAsConstType(), type, and AtomicType::UniformDouble.
Create a ConstExpr from a varying double value
Definition at line 5170 of file expr.cpp.
References AssertPos, Count(), doubleVal, Type::Equal(), Type::GetAsConstType(), type, AtomicType::UniformDouble, and AtomicType::VaryingDouble.
Create a ConstExpr from a uniform int64 value
Definition at line 5131 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), int64Val, type, and AtomicType::UniformInt64.
Create a ConstExpr from a varying int64 value
Definition at line 5138 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), int64Val, type, AtomicType::UniformInt64, and AtomicType::VaryingInt64.
Create a ConstExpr from a uniform uint64 value
Definition at line 5147 of file expr.cpp.
References AssertPos, Type::Equal(), Type::GetAsConstType(), type, uint64Val, and AtomicType::UniformUInt64.
Create a ConstExpr from a varying uint64 value
Definition at line 5154 of file expr.cpp.
References AssertPos, Count(), Type::Equal(), Type::GetAsConstType(), type, uint64Val, AtomicType::UniformUInt64, and AtomicType::VaryingUInt64.
Create a ConstExpr from a uniform bool value
Definition at line 5179 of file expr.cpp.
References AssertPos, boolVal, Type::Equal(), Type::GetAsConstType(), type, and AtomicType::UniformBool.
Create a ConstExpr from a varying bool value
Definition at line 5186 of file expr.cpp.
References AssertPos, boolVal, Count(), Type::Equal(), Type::GetAsConstType(), type, AtomicType::UniformBool, and AtomicType::VaryingBool.
ConstExpr::ConstExpr | ( | ConstExpr * | old, |
double * | values | ||
) |
Create a ConstExpr of the same type as the given old ConstExpr, with values given by the "vales" parameter.
Definition at line 5195 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int8Val, type, AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, and uint8Val.
Create ConstExpr with the same type and values as the given one, but at the given position.
Definition at line 5247 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, type, AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
|
inlinestatic |
|
inlinestatic |
Definition at line 436 of file expr.h.
References ASTNode::ConstExprID, ASTNode::EstimateCost(), Expr::GetConstant(), Expr::GetStorageConstant(), Expr::GetType(), Expr::GetValue(), ASTNode::getValueID(), Expr::Optimize(), Expr::Print(), and Expr::TypeCheck().
int ConstExpr::Count | ( | ) | const |
Return the number of values in the ConstExpr; should be either 1, if it has uniform type, or the target's vector width if it's varying.
Definition at line 5822 of file expr.cpp.
References g, GetType(), Target::getVectorWidth(), Type::IsVaryingType(), and Globals::target.
Referenced by ConstExpr(), GetValues(), lConstFoldBinaryArithOp(), lConstFoldBinaryIntOp(), lConstFoldBinaryLogicalOp(), lConstFoldBoolBinaryOp(), lGetConstExprConstant(), and Print().
|
virtual |
|
private |
Definition at line 5291 of file expr.cpp.
References AssertPos, AtomicType::basicType, type, and AtomicType::TYPE_UINT32.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
|
virtual |
If this is a constant expression that can be converted to a constant of the given type, this method should return the corresponding llvm::Constant value and a flag denoting if it's valid for multi-target compilation for use as an initializer of a global variable. Otherwise it should return the llvm::constant value as NULL.
Reimplemented from Expr.
Definition at line 5949 of file expr.cpp.
References lGetConstExprConstant().
Referenced by lGetBinaryExprStorageConstant().
|
virtual |
If this is a constant expression that can be converted to a constant of storage type of the given type, this method should return the corresponding llvm::Constant value and a flag denoting if it's valid for multi-target compilation for use as an initializer of a global variable. Otherwise it should return the llvm::constant value as NULL.
Reimplemented from Expr.
Definition at line 5946 of file expr.cpp.
References lGetConstExprConstant().
Referenced by lGetBinaryExprStorageConstant().
|
virtual |
Returns the Type of the expression.
Implements Expr.
Definition at line 5301 of file expr.cpp.
References type.
Referenced by Count(), lConstFoldBinaryArithOp(), lConstFoldBinaryIntOp(), lConstFoldBinaryLogicalOp(), lConstFoldBoolBinaryOp(), lGetBinaryExprStorageConstant(), UnaryExpr::Optimize(), SelectExpr::Optimize(), and Print().
|
virtual |
This is the main method for Expr implementations to implement. It should call methods in the FunctionEmitContext to emit LLVM IR instructions to the current basic block in order to generate an llvm::Value that represents the expression's value.
Implements Expr.
Definition at line 5303 of file expr.cpp.
References boolVal, doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, Type::IsVaryingType(), LLVMBoolVector(), LLVMDouble(), LLVMDoubleVector(), LLVMFalse, LLVMFloat(), LLVMFloatVector(), LLVMInt16(), LLVMInt16Vector(), LLVMInt32(), LLVMInt32Vector(), LLVMInt64(), LLVMInt64Vector(), LLVMInt8(), LLVMInt8Vector(), LLVMTrue, LLVMUInt16(), LLVMUInt16Vector(), LLVMUInt32(), LLVMUInt32Vector(), LLVMUInt64(), LLVMUInt64Vector(), LLVMUInt8(), LLVMUInt8Vector(), FunctionEmitContext::SetDebugPos(), type, AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | bool * | b, |
bool | forceVarying = false |
||
) | const |
Return the ConstExpr's values as the given pointer type, doing type conversion from the actual type if needed. If forceVarying is true, then type convert to 'varying' so as to always return a number of values equal to the target vector width into the given pointer.
Definition at line 5535 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
Referenced by lCanImproveVectorDivide(), lCheckAllOffSafety(), lCheckIndicesVersusBounds(), lConstFoldBinaryFPOp(), lConstFoldBinaryIntOp(), lConstFoldSelect(), lEmitEnumDecls(), lGetConstExprConstant(), lIsAllIntZeros(), lIsDifficultShiftAmount(), lOptimizeBitNot(), lOptimizeNegate(), UnaryExpr::Optimize(), BinaryExpr::Optimize(), SelectExpr::Optimize(), and TypeCastExpr::Optimize().
int ConstExpr::GetValues | ( | int8_t * | ip, |
bool | forceVarying = false |
||
) | const |
Definition at line 5576 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | uint8_t * | up, |
bool | forceVarying = false |
||
) | const |
Definition at line 5617 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | int16_t * | ip, |
bool | forceVarying = false |
||
) | const |
Definition at line 5658 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | uint16_t * | up, |
bool | forceVarying = false |
||
) | const |
Definition at line 5699 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | int32_t * | ip, |
bool | forceVarying = false |
||
) | const |
Definition at line 5740 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | uint32_t * | up, |
bool | forceVarying = false |
||
) | const |
Definition at line 5781 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | float * | fp, |
bool | forceVarying = false |
||
) | const |
Definition at line 5494 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | int64_t * | ip, |
bool | forceVarying = false |
||
) | const |
Definition at line 5371 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | uint64_t * | up, |
bool | forceVarying = false |
||
) | const |
Definition at line 5412 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
int ConstExpr::GetValues | ( | double * | d, |
bool | forceVarying = false |
||
) | const |
Definition at line 5453 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), int16Val, int32Val, int64Val, int8Val, lConvert(), AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
|
virtual |
|
virtual |
Prints the expression to standard output (used for debugging).
Implements Expr.
Definition at line 5959 of file expr.cpp.
References boolVal, Count(), doubleVal, FATAL, floatVal, getBasicType(), GetType(), int16Val, int32Val, int64Val, int8Val, PRId64, SourcePos::Print(), PRIu64, AtomicType::TYPE_BOOL, AtomicType::TYPE_DOUBLE, AtomicType::TYPE_FLOAT, AtomicType::TYPE_INT16, AtomicType::TYPE_INT32, AtomicType::TYPE_INT64, AtomicType::TYPE_INT8, AtomicType::TYPE_UINT16, AtomicType::TYPE_UINT32, AtomicType::TYPE_UINT64, AtomicType::TYPE_UINT8, uint16Val, uint32Val, uint64Val, and uint8Val.
|
virtual |
union { ... } |
bool ConstExpr::boolVal[ISPC_MAX_NVEC] |
Definition at line 481 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
double ConstExpr::doubleVal[ISPC_MAX_NVEC] |
Definition at line 483 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
float ConstExpr::floatVal[ISPC_MAX_NVEC] |
Definition at line 482 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
int16_t ConstExpr::int16Val[ISPC_MAX_NVEC] |
Definition at line 477 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
int32_t ConstExpr::int32Val[ISPC_MAX_NVEC] |
Definition at line 479 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
int64_t ConstExpr::int64Val[ISPC_MAX_NVEC] |
Definition at line 484 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
int8_t ConstExpr::int8Val[ISPC_MAX_NVEC] |
Definition at line 475 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
|
private |
Definition at line 473 of file expr.h.
Referenced by ConstExpr(), getBasicType(), GetType(), and GetValue().
uint16_t ConstExpr::uint16Val[ISPC_MAX_NVEC] |
Definition at line 478 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
uint32_t ConstExpr::uint32Val[ISPC_MAX_NVEC] |
Definition at line 480 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
uint64_t ConstExpr::uint64Val[ISPC_MAX_NVEC] |
Definition at line 485 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().
uint8_t ConstExpr::uint8Val[ISPC_MAX_NVEC] |
Definition at line 476 of file expr.h.
Referenced by ConstExpr(), GetValue(), GetValues(), and Print().