//===- 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 summary = "Types and operations for async dialect";
  let description = [{
    This dialect contains operations for modeling asynchronous execution.
  }];

  let cppNamespace = "::mlir::async";

  let extraClassDeclaration = [{
    // The name of a unit attribute on funcs that are allowed to have a blocking
    // async.runtime.await ops. Only useful in combination with
    // 'eliminate-blocking-await-ops' option, which in absence of this attribute
    // might convert a func to a coroutine.
    static constexpr StringRef kAllowedToBlockAttrName = "async.allowed_to_block";
  }];

}

#endif // ASYNC_DIALECT_TD
