MLIR 22.0.0git
AsyncParallelFor.cpp File Reference

Go to the source code of this file.

Classes

class  mlir::impl::AsyncParallelForPassBase< DerivedT >

Namespaces

namespace  mlir
 Include the generated interface declarations.
namespace  mlir::impl
 Attribute collections provide a dictionary-like interface.

Macros

#define GEN_PASS_DEF_ASYNCPARALLELFORPASS
#define DEBUG_TYPE   "async-parallel-for"

Functions

std::unique_ptr<::mlir::Passmlir::impl::createAsyncParallelForPass ()
std::unique_ptr<::mlir::Passmlir::impl::createAsyncParallelForPass (AsyncParallelForPassOptions options)
std::unique_ptr<::mlir::Passmlir::createAsyncParallelForPass ()
std::unique_ptr<::mlir::Passmlir::createAsyncParallelForPass (AsyncParallelForPassOptions options)
template<typename ValueRange>
static SmallVector< IntegerAttr > integerConstants (ValueRange values)
static SmallVector< Valuedelinearize (ImplicitLocOpBuilder &b, Value index, ArrayRef< Value > tripCounts)
static ParallelComputeFunctionType getParallelComputeFunctionType (scf::ParallelOp op, PatternRewriter &rewriter)
static ParallelComputeFunction createParallelComputeFunction (scf::ParallelOp op, const ParallelComputeFunctionBounds &bounds, unsigned numBlockAlignedInnerLoops, PatternRewriter &rewriter)
static func::FuncOp createAsyncDispatchFunction (ParallelComputeFunction &computeFunc, PatternRewriter &rewriter)
static void doAsyncDispatch (ImplicitLocOpBuilder &b, PatternRewriter &rewriter, ParallelComputeFunction &parallelComputeFunction, scf::ParallelOp op, Value blockSize, Value blockCount, const SmallVector< Value > &tripCounts)
static void doSequentialDispatch (ImplicitLocOpBuilder &b, PatternRewriter &rewriter, ParallelComputeFunction &parallelComputeFunction, scf::ParallelOp op, Value blockSize, Value blockCount, const SmallVector< Value > &tripCounts)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "async-parallel-for"

Definition at line 37 of file AsyncParallelFor.cpp.

◆ GEN_PASS_DEF_ASYNCPARALLELFORPASS

#define GEN_PASS_DEF_ASYNCPARALLELFORPASS

Definition at line 30 of file AsyncParallelFor.cpp.

Function Documentation

◆ createAsyncDispatchFunction()

◆ createParallelComputeFunction()

ParallelComputeFunction createParallelComputeFunction ( scf::ParallelOp op,
const ParallelComputeFunctionBounds & bounds,
unsigned numBlockAlignedInnerLoops,
PatternRewriter & rewriter )
static

◆ delinearize()

SmallVector< Value > delinearize ( ImplicitLocOpBuilder & b,
Value index,
ArrayRef< Value > tripCounts )
static

Definition at line 187 of file AsyncParallelFor.cpp.

References b.

◆ doAsyncDispatch()

void doAsyncDispatch ( ImplicitLocOpBuilder & b,
PatternRewriter & rewriter,
ParallelComputeFunction & parallelComputeFunction,
scf::ParallelOp op,
Value blockSize,
Value blockCount,
const SmallVector< Value > & tripCounts )
static

◆ doSequentialDispatch()

void doSequentialDispatch ( ImplicitLocOpBuilder & b,
PatternRewriter & rewriter,
ParallelComputeFunction & parallelComputeFunction,
scf::ParallelOp op,
Value blockSize,
Value blockCount,
const SmallVector< Value > & tripCounts )
static

◆ getParallelComputeFunctionType()

ParallelComputeFunctionType getParallelComputeFunctionType ( scf::ParallelOp op,
PatternRewriter & rewriter )
static

◆ integerConstants()

template<typename ValueRange>
SmallVector< IntegerAttr > integerConstants ( ValueRange values)
static

Definition at line 178 of file AsyncParallelFor.cpp.