43 lines
1.4 KiB
TableGen
43 lines
1.4 KiB
TableGen
//===- AsyncDialect.td -------------------------------------*- tablegen -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Async dialect definition.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef ASYNC_DIALECT_TD
|
|
#define ASYNC_DIALECT_TD
|
|
|
|
include "mlir/IR/OpBase.td"
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// Async dialect definitions
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
def AsyncDialect : Dialect {
|
|
let name = "async";
|
|
let cppNamespace = "::mlir::async";
|
|
|
|
let summary = "Types and operations for async dialect";
|
|
let description = [{
|
|
This dialect contains operations for modeling asynchronous execution.
|
|
}];
|
|
|
|
let useDefaultTypePrinterParser = 1;
|
|
|
|
let extraClassDeclaration = [{
|
|
/// The name of a unit attribute on funcs that are allowed to have a
|
|
/// blocking async.runtime.await ops. In absence of this attribute the
|
|
/// asyncification pass might convert a func to a coroutine.
|
|
static constexpr StringRef kAllowedToBlockAttrName =
|
|
"async.allowed_to_block";
|
|
}];
|
|
}
|
|
|
|
#endif // ASYNC_DIALECT_TD
|