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"
102bb25285SStella Laurenzo #include "mlir/IR/DialectImplementation.h"
112bb25285SStella Laurenzo #include "llvm/ADT/TypeSwitch.h"
1261352a58SStella Laurenzo 
1361352a58SStella Laurenzo using namespace mlir;
1461352a58SStella Laurenzo using namespace mlir::ml_program;
1561352a58SStella Laurenzo 
162bb25285SStella Laurenzo //===----------------------------------------------------------------------===//
172bb25285SStella Laurenzo /// Tablegen Definitions
182bb25285SStella Laurenzo //===----------------------------------------------------------------------===//
192bb25285SStella Laurenzo 
2061352a58SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramOpsDialect.cpp.inc"
212bb25285SStella Laurenzo #define GET_ATTRDEF_CLASSES
222bb25285SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"
23*3bb79993SStella Laurenzo #define GET_TYPEDEF_CLASSES
24*3bb79993SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"
252bb25285SStella Laurenzo 
262bb25285SStella Laurenzo namespace {
272bb25285SStella Laurenzo struct MLProgramOpAsmDialectInterface : public OpAsmDialectInterface {
282bb25285SStella Laurenzo   using OpAsmDialectInterface::OpAsmDialectInterface;
292bb25285SStella Laurenzo 
getAlias__anonf3e26b4f0111::MLProgramOpAsmDialectInterface302bb25285SStella Laurenzo   AliasResult getAlias(Attribute attr, raw_ostream &os) const override {
312bb25285SStella Laurenzo     if (attr.isa<ExternAttr>()) {
322bb25285SStella Laurenzo       os << "extern";
332bb25285SStella Laurenzo       return AliasResult::OverridableAlias;
342bb25285SStella Laurenzo     }
352bb25285SStella Laurenzo     return AliasResult::NoAlias;
362bb25285SStella Laurenzo   }
372bb25285SStella Laurenzo };
382bb25285SStella Laurenzo } // namespace
3961352a58SStella Laurenzo 
initialize()4061352a58SStella Laurenzo void ml_program::MLProgramDialect::initialize() {
412bb25285SStella Laurenzo #define GET_ATTRDEF_LIST
422bb25285SStella Laurenzo   addAttributes<
432bb25285SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"
442bb25285SStella Laurenzo       >();
45*3bb79993SStella Laurenzo 
46*3bb79993SStella Laurenzo #define GET_TYPEDEF_LIST
47*3bb79993SStella Laurenzo   addTypes<
48*3bb79993SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"
49*3bb79993SStella Laurenzo       >();
50*3bb79993SStella Laurenzo 
5161352a58SStella Laurenzo   addOperations<
5261352a58SStella Laurenzo #define GET_OP_LIST
5361352a58SStella Laurenzo #include "mlir/Dialect/MLProgram/IR/MLProgramOps.cpp.inc"
5461352a58SStella Laurenzo       >();
55*3bb79993SStella Laurenzo 
562bb25285SStella Laurenzo   addInterfaces<MLProgramOpAsmDialectInterface>();
5761352a58SStella Laurenzo }
58