//===-- AttrOrTypeDef.h - Wrapper for attr and type definitions -*- 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 // //===----------------------------------------------------------------------===// // // AttrOrTypeDef, AttrDef, and TypeDef wrappers to simplify using TableGen // Record defining a MLIR attributes and types. // //===----------------------------------------------------------------------===// #ifndef MLIR_TABLEGEN_ATTRORTYPEDEF_H #define MLIR_TABLEGEN_ATTRORTYPEDEF_H #include "mlir/Support/LLVM.h" #include "mlir/TableGen/Builder.h" #include "mlir/TableGen/Constraint.h" #include "mlir/TableGen/Trait.h" namespace llvm { class DagInit; class Record; class SMLoc; } // namespace llvm namespace mlir { namespace tblgen { class Dialect; //===----------------------------------------------------------------------===// // AttrOrTypeBuilder //===----------------------------------------------------------------------===// /// Wrapper class that represents a Tablegen AttrOrTypeBuilder. class AttrOrTypeBuilder : public Builder { … }; //===----------------------------------------------------------------------===// // AttrOrTypeParameter //===----------------------------------------------------------------------===// /// A wrapper class for tblgen AttrOrTypeParameter, arrays of which belong to /// AttrOrTypeDefs to parameterize them. class AttrOrTypeParameter { … }; //===----------------------------------------------------------------------===// // AttributeSelfTypeParameter //===----------------------------------------------------------------------===// // A wrapper class for the AttributeSelfTypeParameter tblgen class. This // represents a parameter of mlir::Type that is the value type of an AttrDef. class AttributeSelfTypeParameter : public AttrOrTypeParameter { … }; //===----------------------------------------------------------------------===// // AttrOrTypeDef //===----------------------------------------------------------------------===// /// Wrapper class that contains a TableGen AttrOrTypeDef's record and provides /// helper methods for accessing them. class AttrOrTypeDef { … }; //===----------------------------------------------------------------------===// // AttrDef //===----------------------------------------------------------------------===// /// This class represents a wrapper around a tablegen AttrDef record. class AttrDef : public AttrOrTypeDef { … }; //===----------------------------------------------------------------------===// // TypeDef //===----------------------------------------------------------------------===// /// This class represents a wrapper around a tablegen TypeDef record. class TypeDef : public AttrOrTypeDef { … }; } // namespace tblgen } // namespace mlir #endif // MLIR_TABLEGEN_ATTRORTYPEDEF_H