zenilib
0.5.3.0
|
#include <ForLoopUnroll.h>
Public Member Functions | |
ForLoopUnroll () | |
void | FillLoopIndexInfo (TIntermLoop *node, TLoopIndexInfo &info) |
int | GetLoopIndexValue (TIntermSymbol *symbol) |
bool | NeedsToReplaceSymbolWithValue (TIntermSymbol *symbol) |
void | Pop () |
void | Push (TLoopIndexInfo &info) |
bool | SatisfiesLoopCondition () |
void | Step () |
Static Public Member Functions | |
static void | MarkForLoopsWithIntegerIndicesForUnrolling (TIntermNode *root) |
Definition at line 18 of file ForLoopUnroll.h.
|
inline |
Definition at line 20 of file ForLoopUnroll.h.
void ForLoopUnroll::FillLoopIndexInfo | ( | TIntermLoop * | node, |
TLoopIndexInfo & | info | ||
) |
Definition at line 42 of file ForLoopUnroll.cpp.
References ASSERT, TLoopIndexInfo::currentValue, EbtInt, ELoopFor, EOpDeclaration, EOpInitialize, TIntermAggregate::getAsAggregate(), TIntermNode::getAsBinaryNode(), TIntermNode::getAsConstantUnion(), TIntermConstantUnion::getAsConstantUnion(), TIntermSymbol::getAsSymbolNode(), TIntermTyped::getBasicType(), TIntermLoop::getCondition(), TIntermSymbol::getId(), TIntermLoop::getInit(), TIntermOperator::getOp(), TIntermBinary::getRight(), TIntermAggregate::getSequence(), TIntermLoop::getType(), TIntermLoop::getUnrollFlag(), TLoopIndexInfo::id, TLoopIndexInfo::incrementValue, init(), TLoopIndexInfo::initValue, NULL, TLoopIndexInfo::op, and TLoopIndexInfo::stopValue.
Referenced by TOutputGLSLBase::visitLoop().
int ForLoopUnroll::GetLoopIndexValue | ( | TIntermSymbol * | symbol | ) |
Definition at line 123 of file ForLoopUnroll.cpp.
References TIntermSymbol::getId(), i, and UNREACHABLE.
Referenced by TOutputGLSLBase::visitSymbol().
|
static |
Definition at line 146 of file ForLoopUnroll.cpp.
References ASSERT, and TIntermNode::traverse().
Referenced by TCompiler::compile().
bool ForLoopUnroll::NeedsToReplaceSymbolWithValue | ( | TIntermSymbol * | symbol | ) |
Definition at line 112 of file ForLoopUnroll.cpp.
References TIntermSymbol::getId(), and i.
Referenced by TOutputGLSLBase::visitSymbol().
void ForLoopUnroll::Pop | ( | ) |
Definition at line 140 of file ForLoopUnroll.cpp.
Referenced by TOutputGLSLBase::visitLoop().
void ForLoopUnroll::Push | ( | TLoopIndexInfo & | info | ) |
Definition at line 135 of file ForLoopUnroll.cpp.
Referenced by TOutputGLSLBase::visitLoop().
bool ForLoopUnroll::SatisfiesLoopCondition | ( | ) |
Definition at line 88 of file ForLoopUnroll.cpp.
References ASSERT, EOpEqual, EOpGreaterThan, EOpGreaterThanEqual, EOpLessThan, EOpLessThanEqual, EOpNotEqual, and UNREACHABLE.
Referenced by TOutputGLSLBase::visitLoop().
void ForLoopUnroll::Step | ( | ) |
Definition at line 81 of file ForLoopUnroll.cpp.
References ASSERT.
Referenced by TOutputGLSLBase::visitLoop().