1//===- TestTransformDialectExtension.td --------------------*- 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-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file declares the operations that are injected into the Transform 10// dialect through the extension mechanism, as a test. 11// 12//===----------------------------------------------------------------------===// 13 14#ifndef MLIR_TESTTRANSFORMDIALECTEXTENSION_TD 15#define MLIR_TESTTRANSFORMDIALECTEXTENSION_TD 16 17include "mlir/IR/OpBase.td" 18include "mlir/Dialect/Transform/IR/TransformDialect.td" 19include "mlir/Dialect/Transform/IR/TransformEffects.td" 20include "mlir/Dialect/Transform/IR/TransformInterfaces.td" 21include "mlir/Dialect/PDL/IR/PDLTypes.td" 22 23def TestProduceParamOrForwardOperandOp 24 : Op<Transform_Dialect, "test_produce_param_or_forward_operand", 25 [DeclareOpInterfaceMethods<TransformOpInterface>]> { 26 let arguments = (ins 27 Arg<Optional<PDL_Operation>, "", [TransformMappingRead]>:$operand, 28 OptionalAttr<I64Attr>:$parameter); 29 let results = (outs 30 Res<PDL_Operation, "", 31 [TransformMappingAlloc, TransformMappingWrite]>:$res); 32 let assemblyFormat = "(`from` $operand^)? ($parameter^)? attr-dict"; 33 let cppNamespace = "::mlir::test"; 34 let hasVerifier = 1; 35} 36 37def TestConsumeOperandIfMatchesParamOrFail 38 : Op<Transform_Dialect, "test_consume_operand_if_matches_param_or_fail", 39 [DeclareOpInterfaceMethods<TransformOpInterface>]> { 40 let arguments = (ins 41 Arg<PDL_Operation, "", 42 [TransformMappingWrite, TransformMappingFree]>:$operand, 43 I64Attr:$parameter); 44 let assemblyFormat = "$operand `[` $parameter `]` attr-dict"; 45 let cppNamespace = "::mlir::test"; 46} 47 48def TestPrintRemarkAtOperandOp 49 : Op<Transform_Dialect, "test_print_remark_at_operand", 50 [DeclareOpInterfaceMethods<TransformOpInterface>]> { 51 let arguments = (ins 52 Arg<PDL_Operation, "", 53 [TransformMappingRead, PayloadIRRead]>:$operand, 54 StrAttr:$message); 55 let assemblyFormat = "$operand `,` $message attr-dict"; 56 let cppNamespace = "::mlir::test"; 57} 58 59#endif // MLIR_TESTTRANSFORMDIALECTEXTENSION_TD 60