FLANG
FIRDialect.h
1//===-- Optimizer/Dialect/FIRDialect.h -- FIR dialect -----------*- C++ -*-===//
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-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef FORTRAN_OPTIMIZER_DIALECT_FIRDIALECT_H
14#define FORTRAN_OPTIMIZER_DIALECT_FIRDIALECT_H
15
16#include "mlir/IR/Dialect.h"
17
18#include "flang/Optimizer/Dialect/FIRDialect.h.inc"
19
20namespace mlir {
21class IRMapping;
22} // namespace mlir
23
24namespace fir {
25
28class FIRCodeGenDialect final : public mlir::Dialect {
29public:
30 explicit FIRCodeGenDialect(mlir::MLIRContext *ctx);
31 virtual ~FIRCodeGenDialect();
32
33 static llvm::StringRef getDialectNamespace() { return "fircg"; }
34};
35
37bool canLegallyInline(mlir::Operation *op, mlir::Region *reg, bool,
38 mlir::IRMapping &map);
39bool canLegallyInline(mlir::Operation *, mlir::Operation *, bool);
40
41// Register the FIRInlinerInterface to FIROpsDialect
42void addFIRInlinerExtension(mlir::DialectRegistry &registry);
43
44// Register implementation of LLVMTranslationDialectInterface.
45void addFIRToLLVMIRExtension(mlir::DialectRegistry &registry);
46
47} // namespace fir
48
49#endif // FORTRAN_OPTIMIZER_DIALECT_FIRDIALECT_H
Definition: FIRDialect.h:28
Definition: AbstractConverter.h:31
bool canLegallyInline(mlir::Operation *op, mlir::Region *reg, bool, mlir::IRMapping &map)
Support for inlining on FIR.
Definition: Inliner.cpp:18
Definition: AbstractConverter.h:27