60 lines · plain
1//===-- TestDialect.td - Test dialect definition -----------*- 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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef TEST_DIALECT10#define TEST_DIALECT11 12include "mlir/IR/OpBase.td"13 14def Test_Dialect : Dialect {15 let name = "test";16 let cppNamespace = "::test";17 let hasCanonicalizer = 1;18 let hasConstantMaterializer = 1;19 let hasOperationAttrVerify = 1;20 let hasRegionArgAttrVerify = 1;21 let hasRegionResultAttrVerify = 1;22 let hasOperationInterfaceFallback = 1;23 let hasNonDefaultDestructor = 1;24 let useDefaultTypePrinterParser = 0;25 let useDefaultAttributePrinterParser = 1;26 let isExtensible = 1;27 let dependentDialects = [28 "::mlir::DLTIDialect",29 "::mlir::bufferization::BufferizationDialect"30 ];31 let discardableAttrs = (ins32 "mlir::IntegerAttr":$discardable_attr_key,33 "SimpleAAttr":$other_discardable_attr_key34 );35 36 let extraClassDeclaration = [{37 void registerAttributes();38 void registerInterfaces();39 void registerTypes();40 void registerOpsSyntax();41 42 // Provides a custom printing/parsing for some operations.43 ::std::optional<ParseOpHook>44 getParseOperationHook(::llvm::StringRef opName) const override;45 ::llvm::unique_function<void(::mlir::Operation *,46 ::mlir::OpAsmPrinter &printer)>47 getOperationPrinter(::mlir::Operation *op) const override;48 49 ::mlir::Type parseType(::mlir::DialectAsmParser &parser) const override;50 void printType(::mlir::Type type,51 ::mlir::DialectAsmPrinter &printer) const override;52 53 private:54 // Storage for a custom fallback interface.55 void *fallbackEffectOpInterfaces;56 }];57}58 59#endif // TEST_DIALECT60