MLIR
20.0.0git
|
#include "mlir/Dialect/Async/Passes.h"
#include "PassDetail.h"
#include "mlir/Dialect/Arith/IR/Arith.h"
#include "mlir/Dialect/Async/IR/Async.h"
#include "mlir/Dialect/Async/Transforms.h"
#include "mlir/Dialect/Func/IR/FuncOps.h"
#include "mlir/Dialect/SCF/IR/SCF.h"
#include "mlir/IR/IRMapping.h"
#include "mlir/IR/ImplicitLocOpBuilder.h"
#include "mlir/IR/Matchers.h"
#include "mlir/IR/PatternMatch.h"
#include "mlir/Support/LLVM.h"
#include "mlir/Transforms/GreedyPatternRewriteDriver.h"
#include "mlir/Transforms/RegionUtils.h"
#include <utility>
#include "mlir/Dialect/Async/Passes.h.inc"
Go to the source code of this file.
Namespaces | |
mlir | |
Include the generated interface declarations. | |
Macros | |
#define | GEN_PASS_DEF_ASYNCPARALLELFOR |
#define | DEBUG_TYPE "async-parallel-for" |
Functions | |
template<typename ValueRange > | |
static SmallVector< IntegerAttr > | integerConstants (ValueRange values) |
static SmallVector< Value > | delinearize (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 ¶llelComputeFunction, scf::ParallelOp op, Value blockSize, Value blockCount, const SmallVector< Value > &tripCounts) |
static void | doSequentialDispatch (ImplicitLocOpBuilder &b, PatternRewriter &rewriter, ParallelComputeFunction ¶llelComputeFunction, scf::ParallelOp op, Value blockSize, Value blockCount, const SmallVector< Value > &tripCounts) |
#define DEBUG_TYPE "async-parallel-for" |
Definition at line 38 of file AsyncParallelFor.cpp.
#define GEN_PASS_DEF_ASYNCPARALLELFOR |
Definition at line 31 of file AsyncParallelFor.cpp.
|
static |
Definition at line 460 of file AsyncParallelFor.cpp.
References mlir::ImplicitLocOpBuilder::create(), mlir::OpBuilder::create(), mlir::OpBuilder::createBlock(), mlir::get(), mlir::Block::getArgument(), mlir::Block::getArguments(), mlir::Builder::getContext(), mlir::Builder::getFunctionType(), mlir::Builder::getIndexType(), mlir::OpBuilder::getListener(), mlir::SymbolTable::insert(), mlir::OpBuilder::Listener::notifyOperationInserted(), mlir::OpBuilder::setInsertionPointAfter(), and mlir::OpBuilder::setInsertionPointToEnd().
Referenced by doAsyncDispatch().
|
static |
Definition at line 249 of file AsyncParallelFor.cpp.
References mlir::OpBuilder::clone(), mlir::ImplicitLocOpBuilder::create(), mlir::OpBuilder::createBlock(), mlir::delinearize(), mlir::OpBuilder::getListener(), getParallelComputeFunctionType(), mlir::SymbolTable::insert(), mlir::IRMapping::map(), mlir::OpBuilder::Listener::notifyOperationInserted(), and mlir::OpBuilder::setInsertionPointToEnd().
|
static |
Definition at line 195 of file AsyncParallelFor.cpp.
References mlir::ImplicitLocOpBuilder::create().
Referenced by foldExtractFromShapeCast().
|
static |
Definition at line 576 of file AsyncParallelFor.cpp.
References mlir::ImplicitLocOpBuilder::create(), createAsyncDispatchFunction(), and mlir::get().
|
static |
Definition at line 649 of file AsyncParallelFor.cpp.
References mlir::ImplicitLocOpBuilder::create(), mlir::OpBuilder::create(), mlir::get(), and mlir::Builder::getIndexType().
|
static |
Definition at line 212 of file AsyncParallelFor.cpp.
References mlir::Builder::getFunctionType(), mlir::Builder::getIndexType(), and mlir::getUsedValuesDefinedAbove().
Referenced by createParallelComputeFunction().
|
static |
Definition at line 186 of file AsyncParallelFor.cpp.
References mlir::m_Constant(), and mlir::matchPattern().