|
MLIR 22.0.0git
|
Helper class that generates loop conditions, etc, to traverse a sparse tensor level. More...
#include "Dialect/SparseTensor/Transforms/Utils/SparseTensorIterator.h"
Static Public Member Functions | |
| static std::unique_ptr< SparseIterator > | fromValues (IteratorType dstTp, ValueRange values, unsigned tid) |
Public Attributes | |
| const IterKind | kind |
| const unsigned | tid |
| const unsigned | lvl |
Protected Member Functions | |
| SparseIterator (IterKind kind, unsigned tid, unsigned lvl, unsigned cursorValsCnt, SmallVectorImpl< Value > &cursorValStorage) | |
| SparseIterator (IterKind kind, unsigned cursorValsCnt, SmallVectorImpl< Value > &cursorValStorage, const SparseIterator &delegate) | |
| SparseIterator (IterKind kind, const SparseIterator &wrap, unsigned extraCursorCnt=0) | |
| void | updateCrd (Value crd) |
| MutableArrayRef< Value > | getMutCursorVals () |
| void | inherentBatch (const SparseIterator &parent) |
Protected Attributes | |
| SparseEmitStrategy | emitStrategy |
| SmallVector< Value > | batchCrds |
Helper class that generates loop conditions, etc, to traverse a sparse tensor level.
Definition at line 148 of file SparseTensorIterator.h.
|
inlineprotected |
Definition at line 161 of file SparseTensorIterator.h.
|
inlineprotected |
|
virtualdefault |
Definition at line 1029 of file SparseTensorIterator.cpp.
References b, deref(), derefImpl(), getCrd(), getCursor(), getDebugInterfacePrefix(), getSparseEmitStrategy(), mlir::kDebugInterface, and updateCrd().
Referenced by deref(), mlir::sparse_tensor::genCoIteration(), and genWhenInBound().
|
inlinevirtual |
Definition at line 243 of file SparseTensorIterator.h.
| ValueRange SparseIterator::forward | ( | OpBuilder & | b, |
| Location | l ) |
Definition at line 1041 of file SparseTensorIterator.cpp.
References b, forwardImpl(), getCursor(), getCursorValTypes(), getDebugInterfacePrefix(), mlir::Operation::getResults(), getSparseEmitStrategy(), mlir::kDebugInterface, randomAccessible(), and seek().
Referenced by forwardIf(), and genLoopWithIterator().
|
virtual |
Definition at line 1053 of file SparseTensorIterator.cpp.
References b, forward(), getCursor(), seek(), and YIELD.
|
pure virtual |
|
static |
References tid.
|
inlinevirtual |
Definition at line 289 of file SparseTensorIterator.h.
References b, getCrd(), randomAccessible(), and upperBound().
Referenced by genLoopWithIterator().
| void SparseIterator::genInit | ( | OpBuilder & | b, |
| Location | l, | ||
| const SparseIterator * | p ) |
Definition at line 988 of file SparseTensorIterator.cpp.
References b, genInitImpl(), getCursorValTypes(), getDebugInterfacePrefix(), mlir::Operation::getResults(), getSparseEmitStrategy(), inherentBatch(), mlir::kDebugInterface, and seek().
Referenced by mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
|
pure virtual |
Referenced by genInit().
Definition at line 1004 of file SparseTensorIterator.cpp.
References b, genNotEndImpl(), getCursor(), getDebugInterfacePrefix(), mlir::Operation::getResult(), getSparseEmitStrategy(), and mlir::kDebugInterface.
Referenced by genWhenInBound(), and genWhileCond().
|
pure virtual |
References b.
Referenced by genNotEnd().
|
inline |
Definition at line 296 of file SparseTensorIterator.h.
References b, genNotEnd(), linkNewScope(), and rem.
Referenced by mlir::sparse_tensor::genCoIteration(), and genLoopWithIterator().
|
inline |
Definition at line 192 of file SparseTensorIterator.h.
References batchCrds.
|
inline |
Definition at line 191 of file SparseTensorIterator.h.
Referenced by deref(), genCoIterateBranchNest(), mlir::sparse_tensor::genCoIteration(), and genForCond().
|
inlinevirtual |
Definition at line 286 of file SparseTensorIterator.h.
References getCursor().
|
inline |
Definition at line 193 of file SparseTensorIterator.h.
References ValueRange.
Referenced by deref(), forward(), forwardIf(), mlir::sparse_tensor::genCoIteration(), genLoopWithIterator(), genNotEnd(), getCurPosition(), and locate().
|
pure virtual |
|
pure virtual |
Referenced by deref(), forward(), genInit(), genNotEnd(), and locate().
|
inlineprotected |
Definition at line 327 of file SparseTensorIterator.h.
|
inlinevirtual |
Definition at line 184 of file SparseTensorIterator.h.
References emitStrategy.
Referenced by deref(), forward(), genInit(), genNotEnd(), and locate().
|
inlineprotected |
Definition at line 332 of file SparseTensorIterator.h.
References batchCrds.
Referenced by genInit().
|
pure virtual |
|
inlinevirtual |
Definition at line 224 of file SparseTensorIterator.h.
Referenced by genLoopWithIterator().
|
inline |
Definition at line 317 of file SparseTensorIterator.h.
References randomAccessible(), and seek().
Referenced by mlir::sparse_tensor::genCoIteration(), genLoopWithIterator(), and genWhileCond().
Definition at line 1015 of file SparseTensorIterator.cpp.
References b, getCursor(), getCursorValTypes(), getDebugInterfacePrefix(), getSparseEmitStrategy(), mlir::kDebugInterface, locate(), locateImpl(), seek(), and updateCrd().
Referenced by mlir::sparse_tensor::LoopEmitter::enterCoIterationOverTensorsAtLvls(), locate(), and mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
|
pure virtual |
Referenced by forward(), genForCond(), linkNewScope(), and mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
|
inline |
Definition at line 198 of file SparseTensorIterator.h.
Referenced by forward(), forwardIf(), genInit(), linkNewScope(), and locate().
|
inlinevirtual |
Definition at line 240 of file SparseTensorIterator.h.
|
inlinevirtual |
Definition at line 180 of file SparseTensorIterator.h.
References emitStrategy.
Referenced by mlir::sparse_tensor::makeSynLevelAndIterator().
|
inline |
Definition at line 210 of file SparseTensorIterator.h.
Definition at line 325 of file SparseTensorIterator.h.
|
pure virtual |
References b.
Referenced by genForCond().
|
protected |
Definition at line 337 of file SparseTensorIterator.h.
Referenced by getBatchCrds(), inherentBatch(), and SparseIterator().
|
protected |
Definition at line 336 of file SparseTensorIterator.h.
Referenced by getSparseEmitStrategy(), and setSparseEmitStrategy().
| const IterKind mlir::sparse_tensor::SparseIterator::kind |
Definition at line 340 of file SparseTensorIterator.h.
Referenced by mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress(), SparseIterator(), SparseIterator(), and SparseIterator().
| const unsigned mlir::sparse_tensor::SparseIterator::lvl |
Definition at line 341 of file SparseTensorIterator.h.
Referenced by mlir::sparse_tensor::LoopEmitter::enterCoIterationOverTensorsAtLvls(), SparseIterator(), SparseIterator(), and SparseIterator().
| const unsigned mlir::sparse_tensor::SparseIterator::tid |
Definition at line 341 of file SparseTensorIterator.h.
Referenced by mlir::sparse_tensor::LoopEmitter::enterCoIterationOverTensorsAtLvls(), fromValues(), SparseIterator(), SparseIterator(), and SparseIterator().