1//===- Passes.h - Async pass entry points -----------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This header file defines prototypes that expose pass constructors.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef MLIR_DIALECT_ASYNC_PASSES_H_
14#define MLIR_DIALECT_ASYNC_PASSES_H_
15
16#include "mlir/Pass/Pass.h"
17
18namespace mlir {
19class ModuleOp;
20class ConversionTarget;
21
22#define GEN_PASS_DECL
23#include "mlir/Dialect/Async/Passes.h.inc"
24
25std::unique_ptr<Pass> createAsyncParallelForPass();
26
27std::unique_ptr<Pass> createAsyncParallelForPass(bool asyncDispatch,
28 int32_t numWorkerThreads,
29 int32_t minTaskSize);
30
31void populateAsyncFuncToAsyncRuntimeConversionPatterns(
32 RewritePatternSet &patterns, ConversionTarget &target);
33
34std::unique_ptr<OperationPass<ModuleOp>> createAsyncFuncToAsyncRuntimePass();
35
36std::unique_ptr<OperationPass<ModuleOp>> createAsyncToAsyncRuntimePass();
37
38std::unique_ptr<Pass> createAsyncRuntimeRefCountingPass();
39
40std::unique_ptr<Pass> createAsyncRuntimeRefCountingOptPass();
41
42std::unique_ptr<Pass> createAsyncRuntimePolicyBasedRefCountingPass();
43
44//===----------------------------------------------------------------------===//
45// Registration
46//===----------------------------------------------------------------------===//
47
48/// Generate the code for registering passes.
49#define GEN_PASS_REGISTRATION
50#include "mlir/Dialect/Async/Passes.h.inc"
51
52} // namespace mlir
53
54#endif // MLIR_DIALECT_ASYNC_PASSES_H_
55

source code of mlir/include/mlir/Dialect/Async/Passes.h