| //===- Dialect.h - Dialect definition for the Toy IR ----------------------===// |
| // |
| // 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 |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file implements the IR Dialect for the Toy language. |
| // See docs/Tutorials/Toy/Ch-2.md for more information. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef MLIR_TUTORIAL_TOY_DIALECT_H_ |
| #define MLIR_TUTORIAL_TOY_DIALECT_H_ |
| |
| #include "mlir/IR/BuiltinOps.h" |
| #include "mlir/IR/Dialect.h" |
| #include "mlir/Interfaces/SideEffectInterfaces.h" |
| |
| namespace mlir { |
| namespace toy { |
| |
| /// This is the definition of the Toy dialect. A dialect inherits from |
| /// mlir::Dialect and registers custom attributes, operations, and types (in its |
| /// constructor). It can also override some general behavior exposed via virtual |
| /// methods. |
| class ToyDialect : public mlir::Dialect { |
| public: |
| explicit ToyDialect(mlir::MLIRContext *ctx); |
| |
| /// Provide a utility accessor to the dialect namespace. This is used by |
| /// several utilities for casting between dialects. |
| static llvm::StringRef getDialectNamespace() { return "toy"; } |
| }; |
| |
| } // end namespace toy |
| } // end namespace mlir |
| |
| /// Include the auto-generated header file containing the declarations of the |
| /// toy operations. |
| #define GET_OP_CLASSES |
| #include "toy/Ops.h.inc" |
| |
| #endif // MLIR_TUTORIAL_TOY_DIALECT_H_ |