| //===- CopyOpInterface.td - Copy operation interface -------*- tablegen -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // Defines the interface for copy-like operations. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef MLIR_INTERFACES_COPYOPINTERFACE |
| #define MLIR_INTERFACES_COPYOPINTERFACE |
| |
| include "mlir/IR/OpBase.td" |
| |
| def CopyOpInterface : OpInterface<"CopyOpInterface"> { |
| let description = [{ |
| A copy-like operation is one that copies from source value to target value. |
| }]; |
| |
| let methods = [ |
| InterfaceMethod< |
| /*desc=*/"Returns the source value for this copy operation", |
| /*retTy=*/"Value", |
| /*methodName=*/"getSource" |
| >, |
| InterfaceMethod< |
| /*desc=*/"Returns the target value for this copy operation", |
| /*retTy=*/"Value", |
| /*methodName=*/"getTarget" |
| > |
| ]; |
| } |
| |
| #endif // MLIR_INTERFACES_COPYOPINTERFACE |