MLIR
20.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 146 of file SparseTensorIterator.h.
|
inlineprotected |
Definition at line 153 of file SparseTensorIterator.h.
|
inlineprotected |
Definition at line 159 of file SparseTensorIterator.h.
|
inlineprotected |
Definition at line 165 of file SparseTensorIterator.h.
References wrap().
|
virtualdefault |
Definition at line 1021 of file SparseTensorIterator.cpp.
References mlir::OpBuilder::create(), derefImpl(), emitStrategy, getCrd(), getCursor(), getDebugInterfacePrefix(), mlir::Builder::getIndexType(), mlir::Builder::getStringAttr(), mlir::kDebugInterface, and updateCrd().
Referenced by genWhenInBound().
|
pure virtual |
Referenced by deref().
|
inlinevirtual |
Definition at line 237 of file SparseTensorIterator.h.
ValueRange SparseIterator::forward | ( | OpBuilder & | b, |
Location | l | ||
) |
Definition at line 1033 of file SparseTensorIterator.cpp.
References mlir::OpBuilder::create(), emitStrategy, forwardImpl(), getCursor(), getCursorValTypes(), getDebugInterfacePrefix(), mlir::Operation::getResults(), mlir::Builder::getStringAttr(), mlir::kDebugInterface, randomAccessible(), and seek().
Referenced by forwardIf().
|
virtual |
Definition at line 1045 of file SparseTensorIterator.cpp.
References mlir::OpBuilder::create(), forward(), getCursor(), mlir::ValueRange::getTypes(), seek(), mlir::OpBuilder::setInsertionPointAfter(), mlir::OpBuilder::setInsertionPointToStart(), and YIELD.
|
pure virtual |
Referenced by forward().
|
static |
|
inlinevirtual |
Definition at line 283 of file SparseTensorIterator.h.
References getCrd(), randomAccessible(), and upperBound().
void SparseIterator::genInit | ( | OpBuilder & | b, |
Location | l, | ||
const SparseIterator * | p | ||
) |
Definition at line 980 of file SparseTensorIterator.cpp.
References mlir::OpBuilder::create(), emitStrategy, genInitImpl(), getCursorValTypes(), getDebugInterfacePrefix(), mlir::Operation::getResults(), mlir::Builder::getStringAttr(), inherentBatch(), mlir::kDebugInterface, and seek().
Referenced by mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
|
pure virtual |
Referenced by genInit().
Definition at line 996 of file SparseTensorIterator.cpp.
References mlir::OpBuilder::create(), emitStrategy, genNotEndImpl(), getCursor(), getDebugInterfacePrefix(), mlir::Builder::getI1Type(), mlir::Operation::getResult(), mlir::Builder::getStringAttr(), and mlir::kDebugInterface.
Referenced by genWhenInBound(), and genWhileCond().
|
pure virtual |
Referenced by genNotEnd().
|
inline |
Definition at line 290 of file SparseTensorIterator.h.
References genNotEnd(), and linkNewScope().
|
inline |
Definition at line 186 of file SparseTensorIterator.h.
References batchCrds.
|
inline |
Definition at line 185 of file SparseTensorIterator.h.
Referenced by deref(), genForCond(), and mlir::sparse_tensor::LoopEmitter::getCoord().
|
inlinevirtual |
Definition at line 280 of file SparseTensorIterator.h.
References getCursor().
|
inline |
Definition at line 187 of file SparseTensorIterator.h.
Referenced by deref(), forward(), forwardIf(), genNotEnd(), getCurPosition(), and locate().
|
pure virtual |
|
pure virtual |
Referenced by deref(), forward(), genInit(), genNotEnd(), and locate().
|
inlineprotected |
Definition at line 321 of file SparseTensorIterator.h.
|
inlineprotected |
Definition at line 326 of file SparseTensorIterator.h.
References batchCrds.
Referenced by genInit().
|
pure virtual |
|
inlinevirtual |
Definition at line 218 of file SparseTensorIterator.h.
|
inline |
Definition at line 311 of file SparseTensorIterator.h.
References randomAccessible(), and seek().
Referenced by genWhileCond().
Definition at line 1007 of file SparseTensorIterator.cpp.
References mlir::OpBuilder::create(), emitStrategy, getCursor(), getCursorValTypes(), getDebugInterfacePrefix(), mlir::Builder::getStringAttr(), mlir::kDebugInterface, locateImpl(), seek(), and updateCrd().
Referenced by mlir::sparse_tensor::LoopEmitter::enterCoIterationOverTensorsAtLvls(), and mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
|
inlinevirtual |
Definition at line 265 of file SparseTensorIterator.h.
Referenced by locate().
|
pure virtual |
Referenced by forward(), genForCond(), linkNewScope(), and mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
|
inline |
Definition at line 192 of file SparseTensorIterator.h.
References copy().
Referenced by forward(), forwardIf(), genInit(), linkNewScope(), and locate().
|
inlinevirtual |
Definition at line 234 of file SparseTensorIterator.h.
|
inline |
Definition at line 178 of file SparseTensorIterator.h.
References emitStrategy.
Referenced by mlir::sparse_tensor::makeSynLevelAndIterator().
|
inline |
Definition at line 204 of file SparseTensorIterator.h.
|
inlineprotected |
Definition at line 319 of file SparseTensorIterator.h.
|
pure virtual |
Referenced by genForCond().
|
protected |
Definition at line 331 of file SparseTensorIterator.h.
Referenced by getBatchCrds(), and inherentBatch().
|
protected |
Definition at line 330 of file SparseTensorIterator.h.
Referenced by deref(), forward(), genInit(), genNotEnd(), locate(), and setSparseEmitStrategy().
const IterKind mlir::sparse_tensor::SparseIterator::kind |
Definition at line 334 of file SparseTensorIterator.h.
Referenced by mlir::sparse_tensor::LoopEmitter::locateLvlAtAffineAddress().
const unsigned mlir::sparse_tensor::SparseIterator::lvl |
Definition at line 335 of file SparseTensorIterator.h.
Referenced by mlir::sparse_tensor::LoopEmitter::enterCoIterationOverTensorsAtLvls().
const unsigned mlir::sparse_tensor::SparseIterator::tid |
Definition at line 335 of file SparseTensorIterator.h.
Referenced by mlir::sparse_tensor::LoopEmitter::enterCoIterationOverTensorsAtLvls().