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 Herhutvoid 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