14348d8abSStephan Herhut //===- MathDialect.cpp - MLIR dialect for Math implementation -------------===//
24348d8abSStephan Herhut //
34348d8abSStephan Herhut // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
44348d8abSStephan Herhut // See https://llvm.org/LICENSE.txt for license information.
54348d8abSStephan Herhut // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
64348d8abSStephan Herhut //
74348d8abSStephan Herhut //===----------------------------------------------------------------------===//
84348d8abSStephan Herhut 
94348d8abSStephan Herhut #include "mlir/Dialect/Math/IR/Math.h"
104348d8abSStephan Herhut #include "mlir/Transforms/InliningUtils.h"
114348d8abSStephan Herhut 
124348d8abSStephan Herhut using namespace mlir;
134348d8abSStephan Herhut using namespace mlir::math;
144348d8abSStephan Herhut 
15485cc55eSStella Laurenzo #include "mlir/Dialect/Math/IR/MathOpsDialect.cpp.inc"
16485cc55eSStella Laurenzo 
174348d8abSStephan Herhut namespace {
184348d8abSStephan Herhut /// This class defines the interface for handling inlining with math
194348d8abSStephan Herhut /// operations.
204348d8abSStephan Herhut struct MathInlinerInterface : public DialectInlinerInterface {
214348d8abSStephan Herhut   using DialectInlinerInterface::DialectInlinerInterface;
224348d8abSStephan Herhut 
234348d8abSStephan Herhut   /// All operations within math ops can be inlined.
isLegalToInline__anon08986f010111::MathInlinerInterface244348d8abSStephan Herhut   bool isLegalToInline(Operation *, Region *, bool,
254348d8abSStephan Herhut                        BlockAndValueMapping &) const final {
264348d8abSStephan Herhut     return true;
274348d8abSStephan Herhut   }
284348d8abSStephan Herhut };
29*be0a7e9fSMehdi Amini } // namespace
304348d8abSStephan Herhut 
initialize()314348d8abSStephan Herhut void mlir::math::MathDialect::initialize() {
324348d8abSStephan Herhut   addOperations<
334348d8abSStephan Herhut #define GET_OP_LIST
344348d8abSStephan Herhut #include "mlir/Dialect/Math/IR/MathOps.cpp.inc"
354348d8abSStephan Herhut       >();
364348d8abSStephan Herhut   addInterfaces<MathInlinerInterface>();
374348d8abSStephan Herhut }
38