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