Lines Matching refs:symbol
21 bool IsLoopIndex(const TIntermSymbol* symbol, const TLoopStack& stack) { in IsLoopIndex() argument
23 if (i->index.id == symbol->getId()) in IsLoopIndex()
29 void MarkLoopForUnroll(const TIntermSymbol* symbol, TLoopStack& stack) { in MarkLoopForUnroll() argument
31 if (i->index.id == symbol->getId()) { in MarkLoopForUnroll()
57 virtual void visitSymbol(TIntermSymbol* symbol) { in visitSymbol() argument
61 mValid = (symbol->getQualifier() == EvqConstExpr) || in visitSymbol()
62 IsLoopIndex(symbol, mLoopStack); in visitSymbol()
84 virtual void visitSymbol(TIntermSymbol* symbol) { in visitSymbol() argument
85 if (IsLoopIndex(symbol, mLoopStack)) { in visitSymbol()
86 switch (symbol->getBasicType()) { in visitSymbol()
92 MarkLoopForUnroll(symbol, mLoopStack); in visitSymbol()
96 MarkLoopForUnroll(symbol, mLoopStack); in visitSymbol()
99 UNREACHABLE(symbol->getBasicType()); in visitSymbol()
193 bool ValidateLimitations::isLoopIndex(const TIntermSymbol* symbol) const in isLoopIndex()
195 return IsLoopIndex(symbol, mLoopStack); in isLoopIndex()
258 TIntermSymbol* symbol = declInit->getLeft()->getAsSymbolNode(); in validateForLoopInit() local
259 if (!symbol) { in validateForLoopInit()
264 TBasicType type = symbol->getBasicType(); in validateForLoopInit()
266 error(symbol->getLine(), in validateForLoopInit()
274 symbol->getSymbol().c_str()); in validateForLoopInit()
278 info->index.id = symbol->getId(); in validateForLoopInit()
300 TIntermSymbol* symbol = binOp->getLeft()->getAsSymbolNode(); in validateForLoopCond() local
301 if (!symbol) { in validateForLoopCond()
305 if (symbol->getId() != info->index.id) { in validateForLoopCond()
306 error(symbol->getLine(), in validateForLoopCond()
307 "Expected loop index", symbol->getSymbol().c_str()); in validateForLoopCond()
329 symbol->getSymbol().c_str()); in validateForLoopCond()
358 TIntermSymbol* symbol = nullptr; in validateForLoopExpr() local
361 symbol = unOp->getOperand()->getAsSymbolNode(); in validateForLoopExpr()
364 symbol = binOp->getLeft()->getAsSymbolNode(); in validateForLoopExpr()
368 if (!symbol) { in validateForLoopExpr()
372 if (symbol->getId() != info->index.id) { in validateForLoopExpr()
373 error(symbol->getLine(), in validateForLoopExpr()
374 "Expected loop index", symbol->getSymbol().c_str()); in validateForLoopExpr()
400 symbol->getSymbol().c_str()); in validateForLoopExpr()
421 TIntermSymbol* symbol = params[i]->getAsSymbolNode(); in validateFunctionCall() local
422 if (symbol && isLoopIndex(symbol)) in validateFunctionCall()
432 TSymbol* symbol = symbolTable.find(node->getName(), GetGlobalParseContext()->getShaderVersion()); in validateFunctionCall() local
433 ASSERT(symbol && symbol->isFunction()); in validateFunctionCall()
434 TFunction* function = static_cast<TFunction*>(symbol); in validateFunctionCall()
456 const TIntermSymbol* symbol = operand->getAsSymbolNode(); in validateOperation() local
457 if (symbol && isLoopIndex(symbol)) { in validateOperation()
460 symbol->getSymbol().c_str()); in validateOperation()