7 #ifndef COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_H
8 #define COMPILER_DEPGRAPH_DEPENDENCY_GRAPH_H
63 , mArgumentNumber(argumentNumber) {}
143 TGraphNodeVector::const_iterator
begin()
const {
return mAllNodes.begin(); }
144 TGraphNodeVector::const_iterator
end()
const {
return mAllNodes.end(); }
148 return mSamplerSymbols.begin();
153 return mSamplerSymbols.end();
158 return mUserDefinedFunctionCalls.begin();
163 return mUserDefinedFunctionCalls.end();
174 typedef std::pair<int, TGraphSymbol*> TSymbolIdPair;
179 TSymbolIdMap mSymbolIdMap;
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
TGraphFunctionCall(TIntermAggregate *intermFunctionCall)
virtual ~TGraphArgument()
virtual TIntermAggregate * getAsAggregate()
const TIntermSelection * getIntermSelection() const
TGraphSelection(TIntermSelection *intermSelection)
virtual void visitSelection(TGraphSelection *selection)
TFunctionCallVector::const_iterator endUserDefinedFunctionCalls() const
TGraphSymbol * getOrCreateSymbol(TIntermSymbol *intermSymbol)
const TIntermSymbol * getIntermSymbol() const
void addDependentNode(TGraphNode *node)
const TIntermLoop * getIntermLoop() const
TDependencyGraphTraverser()
virtual TIntermBinary * getAsBinaryNode()
std::vector< TGraphSymbol * > TGraphSymbolVector
TGraphLoop(TIntermLoop *intermLoop)
int getArgumentNumber() const
TGraphArgument * createArgument(TIntermAggregate *intermFunctionCall, int argumentNumber)
const TIntermAggregate * getIntermFunctionCall() const
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
std::set< TGraphNode * > TGraphNodeSet
std::vector< TGraphNode * > TGraphNodeVector
TDependencyGraph(TIntermNode *intermNode)
virtual ~TGraphLogicalOp()
TGraphArgument(TIntermAggregate *intermFunctionCall, int argumentNumber)
TGraphNodeVector::const_iterator begin() const
virtual ~TGraphFunctionCall()
TGraphNode(TIntermNode *node)
TGraphSymbolVector::const_iterator endSamplerSymbols() const
TGraphSymbol(TIntermSymbol *intermSymbol)
bool isVisited(TGraphNode *node) const
virtual TIntermLoop * getAsLoopNode()
TGraphLoop * createLoop(TIntermLoop *intermLoop)
TGraphSymbolVector::const_iterator beginSamplerSymbols() const
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
TGraphParentNode(TIntermNode *node)
const TIntermBinary * getIntermLogicalOp() const
void markVisited(TGraphNode *node)
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
TGraphFunctionCall * createFunctionCall(TIntermAggregate *intermFunctionCall)
virtual void visitFunctionCall(TGraphFunctionCall *functionCall)
virtual void visitArgument(TGraphArgument *selection)
TGraphLogicalOp(TIntermBinary *intermLogicalOp)
const TIntermAggregate * getIntermFunctionCall() const
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
virtual void visitLoop(TGraphLoop *loop)
virtual void visitSymbol(TGraphSymbol *symbol)
TGraphSelection * createSelection(TIntermSelection *intermSelection)
virtual void visitLogicalOp(TGraphLogicalOp *logicalOp)
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
virtual ~TGraphSelection()
virtual void traverse(TDependencyGraphTraverser *graphTraverser)
const char * getOpString() const
virtual TIntermSymbol * getAsSymbolNode()
TFunctionCallVector::const_iterator beginUserDefinedFunctionCalls() const
TGraphLogicalOp * createLogicalOp(TIntermBinary *intermLogicalOp)
std::vector< TGraphFunctionCall * > TFunctionCallVector
virtual TIntermSelection * getAsSelectionNode()
TGraphNodeVector::const_iterator end() const
virtual ~TGraphParentNode()