xref: /llvm-project/mlir/include/mlir/Dialect/OpenACC/OpenACCOpsTypes.td (revision 9365ed1e10e92c48ad3dbe4b257b0fdc045b74a3)
1//===- OpenACCOpsTypes.td - OpenACC operation types definitions -*- tablegen -*-===//
2//
3// Part of the MLIR 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// Defines MLIR OpenACC operation types.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef OPENACC_OPS_TYPES
14#define OPENACC_OPS_TYPES
15
16include "mlir/IR/AttrTypeBase.td"
17include "mlir/Dialect/OpenACC/OpenACCBase.td"
18
19class OpenACC_Type<string name, string typeMnemonic> : TypeDef<OpenACC_Dialect, name> {
20  let mnemonic = typeMnemonic;
21}
22
23def OpenACC_DataBoundsType : OpenACC_Type<"DataBounds", "data_bounds_ty"> {
24  let summary = "Type for representing acc data clause bounds information";
25}
26
27def OpenACC_DeclareTokenType : OpenACC_Type<"DeclareToken", "declare_token"> {
28  let summary = "declare token type";
29  let description = [{
30    `acc.declare_token` is a type returned by a `declare_enter` operation and
31    can be passed to a `declare_exit` operation to represent an implicit
32    data region.
33  }];
34}
35
36#endif // OPENACC_OPS_TYPES
37