1//===- CopyOpInterface.td - Copy operation interface -------*- 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// Defines the interface for copy-like operations. 10// 11//===----------------------------------------------------------------------===// 12 13#ifndef MLIR_INTERFACES_COPYOPINTERFACE 14#define MLIR_INTERFACES_COPYOPINTERFACE 15 16include "mlir/IR/OpBase.td" 17 18def CopyOpInterface : OpInterface<"CopyOpInterface"> { 19 let description = [{ 20 A copy-like operation is one that copies from source value to target value. 21 }]; 22 let cppNamespace = "::mlir"; 23 24 let methods = [ 25 InterfaceMethod< 26 /*desc=*/"Returns the source value for this copy operation", 27 /*retTy=*/"Value", 28 /*methodName=*/"getSource" 29 >, 30 InterfaceMethod< 31 /*desc=*/"Returns the target value for this copy operation", 32 /*retTy=*/"Value", 33 /*methodName=*/"getTarget" 34 > 35 ]; 36} 37 38#endif // MLIR_INTERFACES_COPYOPINTERFACE 39