|
My Project
|
#include <DependenceAnalysis.h>
Classes | |
| struct | LinalgDependenceGraphElem |
| struct | LinalgOpView |
Public Types | |
| enum | DependenceType { RAR = 0, RAW, WAR, WAW, NumTypes } |
| using | LinalgDependences = SmallVector< LinalgDependenceGraphElem, 8 > |
| using | DependenceGraph = DenseMap< Operation *, LinalgDependences > |
| using | dependence_iterator = LinalgDependences::const_iterator |
| using | dependence_range = iterator_range< dependence_iterator > |
Public Member Functions | |
| LinalgDependenceGraph (Aliases &aliases, ArrayRef< Operation *> ops) | |
| dependence_range | getDependencesFrom (Operation *src, DependenceType dt) const |
| Returns the X such that op -> X is a dependence of type dt. More... | |
| dependence_range | getDependencesFrom (LinalgOp src, DependenceType dt) const |
| dependence_range | getDependencesInto (Operation *dst, DependenceType dt) const |
| Returns the X such that X -> op is a dependence of type dt. More... | |
| dependence_range | getDependencesInto (LinalgOp dst, DependenceType dt) const |
| SmallVector< Operation *, 8 > | findCoveringDependences (LinalgOp srcLinalgOp, LinalgOp dstLinalgOp) const |
| SmallVector< Operation *, 8 > | findCoveringReads (LinalgOp srcLinalgOp, LinalgOp dstLinalgOp, Value view) const |
| SmallVector< Operation *, 8 > | findCoveringWrites (LinalgOp srcLinalgOp, LinalgOp dstLinalgOp, Value view) const |
Static Public Member Functions | |
| static LinalgDependenceGraph | buildDependenceGraph (Aliases &aliases, FuncOp f) |
Data structure for holding a dependence graph that operates on LinalgOp and views as SSA values.
| using mlir::linalg::LinalgDependenceGraph::dependence_iterator = LinalgDependences::const_iterator |
| using mlir::linalg::LinalgDependenceGraph::DependenceGraph = DenseMap<Operation *, LinalgDependences> |
| using mlir::linalg::LinalgDependenceGraph::LinalgDependences = SmallVector<LinalgDependenceGraphElem, 8> |
|
static |
| SmallVector< Operation *, 8 > LinalgDependenceGraph::findCoveringDependences | ( | LinalgOp | srcLinalgOp, |
| LinalgOp | dstLinalgOp | ||
| ) | const |
Returns the operations that are interleaved between srcLinalgOp and dstLinalgOp and that are involved in any RAW, WAR or WAW dependence relation with srcLinalgOp, on any view. Any such operation prevents reordering.
| SmallVector< Operation *, 8 > LinalgDependenceGraph::findCoveringReads | ( | LinalgOp | srcLinalgOp, |
| LinalgOp | dstLinalgOp, | ||
| Value | view | ||
| ) | const |
Returns the operations that are interleaved between srcLinalgOp and dstLinalgOp and that are involved in a RAR or RAW with srcLinalgOp. Dependences are restricted to views aliasing view.
| SmallVector< Operation *, 8 > LinalgDependenceGraph::findCoveringWrites | ( | LinalgOp | srcLinalgOp, |
| LinalgOp | dstLinalgOp, | ||
| Value | view | ||
| ) | const |
Returns the operations that are interleaved between srcLinalgOp and dstLinalgOp and that are involved in a WAR or WAW with srcLinalgOp. Dependences are restricted to views aliasing view.
| LinalgDependenceGraph::dependence_range LinalgDependenceGraph::getDependencesFrom | ( | Operation * | src, |
| LinalgDependenceGraph::DependenceType | dt | ||
| ) | const |
Returns the X such that op -> X is a dependence of type dt.
| LinalgDependenceGraph::dependence_range LinalgDependenceGraph::getDependencesFrom | ( | LinalgOp | src, |
| LinalgDependenceGraph::DependenceType | dt | ||
| ) | const |
| LinalgDependenceGraph::dependence_range LinalgDependenceGraph::getDependencesInto | ( | Operation * | dst, |
| LinalgDependenceGraph::DependenceType | dt | ||
| ) | const |
Returns the X such that X -> op is a dependence of type dt.
| LinalgDependenceGraph::dependence_range LinalgDependenceGraph::getDependencesInto | ( | LinalgOp | dst, |
| LinalgDependenceGraph::DependenceType | dt | ||
| ) | const |
1.8.13