MLIR  20.0.0git
PassDetail.h
Go to the documentation of this file.
1 //===- PassDetail.h - Async Pass class details ------------------*- 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 #ifndef DIALECT_ASYNC_TRANSFORMS_PASSDETAIL_H_
10 #define DIALECT_ASYNC_TRANSFORMS_PASSDETAIL_H_
11 
12 #include "mlir/IR/BuiltinOps.h"
13 #include "mlir/IR/Dialect.h"
14 #include "mlir/Pass/Pass.h"
15 
16 namespace mlir {
17 
18 namespace arith {
19 class ArithDialect;
20 } // namespace arith
21 
22 namespace async {
23 class AsyncDialect;
24 } // namespace async
25 
26 namespace scf {
27 class SCFDialect;
28 } // namespace scf
29 
30 // -------------------------------------------------------------------------- //
31 // Utility functions shared by Async Transformations.
32 // -------------------------------------------------------------------------- //
33 
34 // Forward declarations.
35 class OpBuilder;
36 
37 namespace async {
38 
39 /// Clone ConstantLike operations that are defined above the given region and
40 /// have users in the region into the region entry block. We do that to reduce
41 /// the number of function arguments when we outline `async.execute` and
42 /// `scf.parallel` operations body into functions.
43 void cloneConstantsIntoTheRegion(Region &region);
44 void cloneConstantsIntoTheRegion(Region &region, OpBuilder &builder);
45 
46 } // namespace async
47 
48 } // namespace mlir
49 
50 #endif // DIALECT_ASYNC_TRANSFORMS_PASSDETAIL_H_
void cloneConstantsIntoTheRegion(Region &region)
Clone ConstantLike operations that are defined above the given region and have users in the region in...
Definition: PassDetail.cpp:15
Include the generated interface declarations.