161352a58SStella Laurenzo //===- MLProgramDialect.cpp - MLProgram dialect implementation ------------===// 261352a58SStella Laurenzo // 361352a58SStella Laurenzo // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 461352a58SStella Laurenzo // See https://llvm.org/LICENSE.txt for license information. 561352a58SStella Laurenzo // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 661352a58SStella Laurenzo // 761352a58SStella Laurenzo //===----------------------------------------------------------------------===// 861352a58SStella Laurenzo 961352a58SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgram.h" 10*2bb25285SStella Laurenzo #include "mlir/IR/DialectImplementation.h" 11*2bb25285SStella Laurenzo #include "llvm/ADT/TypeSwitch.h" 1261352a58SStella Laurenzo 1361352a58SStella Laurenzo using namespace mlir; 1461352a58SStella Laurenzo using namespace mlir::ml_program; 1561352a58SStella Laurenzo 16*2bb25285SStella Laurenzo //===----------------------------------------------------------------------===// 17*2bb25285SStella Laurenzo /// Tablegen Definitions 18*2bb25285SStella Laurenzo //===----------------------------------------------------------------------===// 19*2bb25285SStella Laurenzo 2061352a58SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramOpsDialect.cpp.inc" 21*2bb25285SStella Laurenzo #define GET_ATTRDEF_CLASSES 22*2bb25285SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc" 23*2bb25285SStella Laurenzo 24*2bb25285SStella Laurenzo namespace { 25*2bb25285SStella Laurenzo struct MLProgramOpAsmDialectInterface : public OpAsmDialectInterface { 26*2bb25285SStella Laurenzo using OpAsmDialectInterface::OpAsmDialectInterface; 27*2bb25285SStella Laurenzo 28*2bb25285SStella Laurenzo AliasResult getAlias(Attribute attr, raw_ostream &os) const override { 29*2bb25285SStella Laurenzo if (attr.isa<ExternAttr>()) { 30*2bb25285SStella Laurenzo os << "extern"; 31*2bb25285SStella Laurenzo return AliasResult::OverridableAlias; 32*2bb25285SStella Laurenzo } 33*2bb25285SStella Laurenzo return AliasResult::NoAlias; 34*2bb25285SStella Laurenzo } 35*2bb25285SStella Laurenzo }; 36*2bb25285SStella Laurenzo } // namespace 3761352a58SStella Laurenzo 3861352a58SStella Laurenzo void ml_program::MLProgramDialect::initialize() { 39*2bb25285SStella Laurenzo #define GET_ATTRDEF_LIST 40*2bb25285SStella Laurenzo addAttributes< 41*2bb25285SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc" 42*2bb25285SStella Laurenzo >(); 4361352a58SStella Laurenzo addOperations< 4461352a58SStella Laurenzo #define GET_OP_LIST 4561352a58SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramOps.cpp.inc" 4661352a58SStella Laurenzo >(); 47*2bb25285SStella Laurenzo addInterfaces<MLProgramOpAsmDialectInterface>(); 4861352a58SStella Laurenzo } 49