//===- Interfaces.h - Interface wrapper classes -----------------*- C++ -*-===// // // 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 // //===----------------------------------------------------------------------===// #ifndef MLIR_TABLEGEN_INTERFACES_H_ #define MLIR_TABLEGEN_INTERFACES_H_ #include "mlir/Support/LLVM.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/ADT/iterator.h" namespace llvm { class Init; class Record; } // namespace llvm namespace mlir { namespace tblgen { // Wrapper class with helper methods for accessing InterfaceMethod defined // in TableGen. class InterfaceMethod { … }; //===----------------------------------------------------------------------===// // Interface //===----------------------------------------------------------------------===// // Wrapper class with helper methods for accessing Interfaces defined in // TableGen. class Interface { … }; // An interface that is registered to an Attribute. struct AttrInterface : public Interface { … }; // An interface that is registered to an Operation. struct OpInterface : public Interface { … }; // An interface that is registered to a Type. struct TypeInterface : public Interface { … }; } // namespace tblgen } // namespace mlir #endif // MLIR_TABLEGEN_INTERFACES_H_