MLIR  20.0.0git
Functions
SparseIterationToScf.cpp File Reference
#include "Utils/CodegenUtils.h"
#include "Utils/LoopEmitter.h"
#include "Utils/SparseTensorIterator.h"
#include "mlir/Dialect/MemRef/IR/MemRef.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/Dialect/SparseTensor/IR/SparseTensor.h"
#include "mlir/Dialect/SparseTensor/Transforms/Passes.h"
#include "mlir/Transforms/OneToNTypeConversion.h"

Go to the source code of this file.

Functions

static void convertLevelType (SparseTensorEncodingAttr enc, Level lvl, SmallVectorImpl< Type > &fields)
 
static std::optional< LogicalResult > convertIterSpaceType (IterSpaceType itSp, SmallVectorImpl< Type > &fields)
 
static std::optional< LogicalResult > convertIteratorType (IteratorType itTp, SmallVectorImpl< Type > &fields)
 
static ValueRange genCoIterateBranchNest (PatternRewriter &rewriter, Location loc, CoIterateOp op, Value loopCrd, ArrayRef< std::unique_ptr< SparseIterator >> iters, ArrayRef< Region * > subCases, ArrayRef< Value > userReduc)
 
static ValueRange genLoopWithIterator (PatternRewriter &rewriter, Location loc, SparseIterator *it, ValueRange reduc, function_ref< SmallVector< Value >(PatternRewriter &rewriter, Location loc, Region &loopBody, SparseIterator *it, ValueRange reduc)> bodyBuilder)
 

Function Documentation

◆ convertIteratorType()

static std::optional<LogicalResult> convertIteratorType ( IteratorType  itTp,
SmallVectorImpl< Type > &  fields 
)
static

◆ convertIterSpaceType()

static std::optional<LogicalResult> convertIterSpaceType ( IterSpaceType  itSp,
SmallVectorImpl< Type > &  fields 
)
static

◆ convertLevelType()

static void convertLevelType ( SparseTensorEncodingAttr  enc,
Level  lvl,
SmallVectorImpl< Type > &  fields 
)
static

Definition at line 15 of file SparseIterationToScf.cpp.

References mlir::get().

Referenced by convertIterSpaceType().

◆ genCoIterateBranchNest()

static ValueRange genCoIterateBranchNest ( PatternRewriter rewriter,
Location  loc,
CoIterateOp  op,
Value  loopCrd,
ArrayRef< std::unique_ptr< SparseIterator >>  iters,
ArrayRef< Region * >  subCases,
ArrayRef< Value userReduc 
)
static

Definition at line 54 of file SparseIterationToScf.cpp.

◆ genLoopWithIterator()

static ValueRange genLoopWithIterator ( PatternRewriter rewriter,
Location  loc,
SparseIterator it,
ValueRange  reduc,
function_ref< SmallVector< Value >(PatternRewriter &rewriter, Location loc, Region &loopBody, SparseIterator *it, ValueRange reduc)>  bodyBuilder 
)
static