//===- MLIRGen.h - MLIR Generation from a Toy AST -------------------------===// // // 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 declares a simple interface to perform IR generation targeting MLIR // from a Module AST for the Toy language. // //===----------------------------------------------------------------------===// #ifndef TOY_MLIRGEN_H #define TOY_MLIRGEN_H #include <memory> namespace mlir { class MLIRContext; template <typename OpTy> class OwningOpRef; class ModuleOp; } // namespace mlir namespace toy { class ModuleAST; /// Emit IR for the given Toy moduleAST, returns a newly created MLIR module /// or nullptr on failure. mlir::OwningOpRef<mlir::ModuleOp> mlirGen(mlir::MLIRContext &context, ModuleAST &moduleAST); } // namespace toy #endif // TOY_MLIRGEN_H