MLIR  16.0.0git
AsyncToLLVM.h
Go to the documentation of this file.
1 //===- AsyncToLLVM.h - Convert Async to LLVM dialect ------------*- 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 MLIR_CONVERSION_ASYNCTOLLVM_ASYNCTOLLVM_H
10 #define MLIR_CONVERSION_ASYNCTOLLVM_ASYNCTOLLVM_H
11 
12 #include <memory>
13 
14 namespace mlir {
15 
16 class ConversionTarget;
17 class ModuleOp;
18 template <typename T>
20 class MLIRContext;
21 class TypeConverter;
22 class RewritePatternSet;
23 
24 /// Create a pass to convert Async operations to the LLVM dialect.
25 std::unique_ptr<OperationPass<ModuleOp>> createConvertAsyncToLLVMPass();
26 
27 /// Populates patterns for async structural type conversions.
28 ///
29 /// A "structural" type conversion is one where the underlying ops are
30 /// completely agnostic to the actual types involved and simply need to update
31 /// their types. An example of this is async.execute -- the async.execute op and
32 /// the corresponding async.yield ops need to update their types accordingly to
33 /// the TypeConverter, but otherwise don't care what type conversions are
34 /// happening.
36  TypeConverter &typeConverter, RewritePatternSet &patterns,
37  ConversionTarget &target);
38 
39 } // namespace mlir
40 
41 #endif // MLIR_CONVERSION_ASYNCTOLLVM_ASYNCTOLLVM_H
Include the generated interface declarations.
Pass to transform an operation of a specific type.
Definition: AsyncToLLVM.h:19
void populateAsyncStructuralTypeConversionsAndLegality(TypeConverter &typeConverter, RewritePatternSet &patterns, ConversionTarget &target)
Populates patterns for async structural type conversions.
Type conversion class.
MLIRContext is the top-level object for a collection of MLIR operations.
Definition: MLIRContext.h:55
std::unique_ptr< OperationPass< ModuleOp > > createConvertAsyncToLLVMPass()
Create a pass to convert Async operations to the LLVM dialect.
This class describes a specific conversion target.