MLIR
16.0.0git
include
mlir
Conversion
AsyncToLLVM
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>
19
class
OperationPass
;
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.
35
void
populateAsyncStructuralTypeConversionsAndLegality
(
36
TypeConverter
&typeConverter,
RewritePatternSet
&patterns,
37
ConversionTarget
&target);
38
39
}
// namespace mlir
40
41
#endif // MLIR_CONVERSION_ASYNCTOLLVM_ASYNCTOLLVM_H
mlir
Include the generated interface declarations.
Definition:
LocalAliasAnalysis.h:20
mlir::OperationPass
Pass to transform an operation of a specific type.
Definition:
AsyncToLLVM.h:19
mlir::populateAsyncStructuralTypeConversionsAndLegality
void populateAsyncStructuralTypeConversionsAndLegality(TypeConverter &typeConverter, RewritePatternSet &patterns, ConversionTarget &target)
Populates patterns for async structural type conversions.
Definition:
AsyncToLLVM.cpp:1115
mlir::RewritePatternSet
Definition:
PatternMatch.h:1365
mlir::TypeConverter
Type conversion class.
Definition:
DialectConversion.h:36
mlir::MLIRContext
MLIRContext is the top-level object for a collection of MLIR operations.
Definition:
MLIRContext.h:55
mlir::createConvertAsyncToLLVMPass
std::unique_ptr< OperationPass< ModuleOp > > createConvertAsyncToLLVMPass()
Create a pass to convert Async operations to the LLVM dialect.
Definition:
AsyncToLLVM.cpp:1111
mlir::ConversionTarget
This class describes a specific conversion target.
Definition:
DialectConversion.h:648
Generated on Mon Aug 8 2022 16:36:10 for MLIR by
1.8.13