brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 0b15612 Raw
63 lines · cpp
1//===- MLProgramDialect.cpp - MLProgram dialect implementation ------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "mlir/Dialect/MLProgram/IR/MLProgram.h"10#include "mlir/IR/DialectImplementation.h"11#include "mlir/Transforms/InliningUtils.h"12#include "llvm/ADT/TypeSwitch.h"13 14using namespace mlir;15using namespace mlir::ml_program;16 17//===----------------------------------------------------------------------===//18/// Tablegen Definitions19//===----------------------------------------------------------------------===//20 21#include "mlir/Dialect/MLProgram/IR/MLProgramOpsDialect.cpp.inc"22#define GET_ATTRDEF_CLASSES23#include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"24#define GET_TYPEDEF_CLASSES25#include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"26 27namespace {28 29struct MLProgramInlinerInterface : public DialectInlinerInterface {30  using DialectInlinerInterface::DialectInlinerInterface;31 32  bool isLegalToInline(Operation *, Region *, bool,33                       IRMapping &) const override {34    // We have no specific opinion on whether ops defined in this dialect should35    // be inlined.36    return true;37  }38};39 40struct MLProgramOpAsmDialectInterface : public OpAsmDialectInterface {41  using OpAsmDialectInterface::OpAsmDialectInterface;42};43} // namespace44 45void ml_program::MLProgramDialect::initialize() {46#define GET_ATTRDEF_LIST47  addAttributes<48#include "mlir/Dialect/MLProgram/IR/MLProgramAttributes.cpp.inc"49      >();50 51#define GET_TYPEDEF_LIST52  addTypes<53#include "mlir/Dialect/MLProgram/IR/MLProgramTypes.cpp.inc"54      >();55 56  addOperations<57#define GET_OP_LIST58#include "mlir/Dialect/MLProgram/IR/MLProgramOps.cpp.inc"59      >();60 61  addInterfaces<MLProgramInlinerInterface, MLProgramOpAsmDialectInterface>();62}63