MLIR  20.0.0git
Classes | Namespaces | Enumerations | Functions
SparseTensorIterator.h File Reference
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"

Go to the source code of this file.

Classes

class  mlir::sparse_tensor::SparseTensorLevel
 The base class for all types of sparse tensor levels. More...
 
class  mlir::sparse_tensor::SparseIterationSpace
 A SparseIterationSpace represents a sparse set of coordinates defined by (possibly multiple) levels of a specific sparse tensor. More...
 
class  mlir::sparse_tensor::SparseIterator
 Helper class that generates loop conditions, etc, to traverse a sparse tensor level. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 
 mlir::sparse_tensor
 

Enumerations

enum class  mlir::sparse_tensor::IterKind : uint8_t {
  mlir::sparse_tensor::kTrivial , mlir::sparse_tensor::kDedup , mlir::sparse_tensor::kSubSect , mlir::sparse_tensor::kNonEmptySubSect ,
  mlir::sparse_tensor::kFilter , mlir::sparse_tensor::kPad
}
 

Functions

std::unique_ptr< SparseTensorLevelmlir::sparse_tensor::makeSparseTensorLevel (OpBuilder &b, Location l, Value t, unsigned tid, Level lvl)
 Helper function to create a TensorLevel object from given tensor. More...
 
std::unique_ptr< SparseTensorLevelmlir::sparse_tensor::makeSparseTensorLevel (LevelType lt, Value sz, ValueRange buffers, unsigned tid, Level l)
 Helper function to create a TensorLevel object from given ValueRange. More...
 
std::unique_ptr< SparseIteratormlir::sparse_tensor::makeSimpleIterator (OpBuilder &b, Location l, const SparseIterationSpace &iterSpace)
 Helper function to create a simple SparseIterator object that iterate over the entire iteration space. More...
 
std::unique_ptr< SparseIteratormlir::sparse_tensor::makeSimpleIterator (const SparseTensorLevel &stl, SparseEmitStrategy strategy=SparseEmitStrategy::kFunctional)
 Helper function to create a simple SparseIterator object that iterate over the sparse tensor level. More...
 
std::pair< std::unique_ptr< SparseTensorLevel >, std::unique_ptr< SparseIterator > > mlir::sparse_tensor::makeSynLevelAndIterator (Value sz, unsigned tid, unsigned lvl, SparseEmitStrategy strategy)
 Helper function to create a synthetic SparseIterator object that iterates over a dense space specified by [0,sz). More...
 
std::unique_ptr< SparseIteratormlir::sparse_tensor::makeSlicedLevelIterator (std::unique_ptr< SparseIterator > &&sit, Value offset, Value stride, Value size, SparseEmitStrategy strategy)
 Helper function to create a SparseIterator object that iterates over a sliced space, the orignal space (before slicing) is traversed by sit. More...
 
std::unique_ptr< SparseIteratormlir::sparse_tensor::makePaddedIterator (std::unique_ptr< SparseIterator > &&sit, Value padLow, Value padHigh, SparseEmitStrategy strategy)
 Helper function to create a SparseIterator object that iterates over a padded sparse level (the padded value must be zero). More...
 
std::unique_ptr< SparseIteratormlir::sparse_tensor::makeNonEmptySubSectIterator (OpBuilder &b, Location l, const SparseIterator *parent, Value loopBound, std::unique_ptr< SparseIterator > &&delegate, Value size, unsigned stride, SparseEmitStrategy strategy)
 Helper function to create a SparseIterator object that iterate over the non-empty subsections set. More...
 
std::unique_ptr< SparseIteratormlir::sparse_tensor::makeTraverseSubSectIterator (OpBuilder &b, Location l, const SparseIterator &subsectIter, const SparseIterator &parent, std::unique_ptr< SparseIterator > &&wrap, Value loopBound, unsigned stride, SparseEmitStrategy strategy)
 Helper function to create a SparseIterator object that iterates over a non-empty subsection created by NonEmptySubSectIterator. More...