xref: /llvm-project/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td (revision 863c346209e27d22157fad21d0fd730e710a3441)
1//===- AsyncDialect.td -------------------------------------*- tablegen -*-===//
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// Async dialect definition.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef ASYNC_DIALECT_TD
14#define ASYNC_DIALECT_TD
15
16include "mlir/IR/OpBase.td"
17
18//===----------------------------------------------------------------------===//
19// Async dialect definitions
20//===----------------------------------------------------------------------===//
21
22def AsyncDialect : Dialect {
23  let name = "async";
24  let cppNamespace = "::mlir::async";
25
26  let summary = "Types and operations for async dialect";
27  let description = [{
28    This dialect contains operations for modeling asynchronous execution.
29  }];
30
31  let useDefaultTypePrinterParser = 1;
32
33  let extraClassDeclaration = [{
34    /// The name of a unit attribute on funcs that are allowed to have a
35    /// blocking async.runtime.await ops. In absence of this attribute the
36    /// asyncification pass might convert a func to a coroutine.
37    static constexpr StringRef kAllowedToBlockAttrName =
38        "async.allowed_to_block";
39  }];
40}
41
42#endif // ASYNC_DIALECT_TD
43