zenilib: ForLoopUnroll Class Reference

zenilib 0.5.3.0

- Main Page
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | List of all members
ForLoopUnroll Class Reference

`#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)

## Detailed Description

Definition at line 18 of file ForLoopUnroll.h.

## Constructor & Destructor Documentation

ForLoopUnroll::ForLoopUnroll | ( |  | ) |

inline

Definition at line 20 of file ForLoopUnroll.h.

## Member Function Documentation

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().

void ForLoopUnroll::MarkForLoopsWithIntegerIndicesForUnrolling | ( | TIntermNode * | root | ) |

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().

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

- zenilib/jni/external/angle/src/compiler/ForLoopUnroll.h
- zenilib/jni/external/angle/src/compiler/ForLoopUnroll.cpp