FLANG
FIROperationMoveOpInterface.h
1//===- FIROperationMoveOpInterface.h ----------------------------*- 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// This file declares methods used by OperationMoveOpInterface.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef FORTRAN_OPTIMIZER_DIALECT_FIR_OPERATION_MOVE_OP_INTERFACE_H
14#define FORTRAN_OPTIMIZER_DIALECT_FIR_OPERATION_MOVE_OP_INTERFACE_H
15
16#include "mlir/IR/Operation.h"
17#include "llvm/Support/LogicalResult.h"
18
19namespace fir::detail {
21llvm::LogicalResult verifyOperationMoveOpInterface(mlir::Operation *op);
22} // namespace fir::detail
23
24#include "flang/Optimizer/Dialect/FIROperationMoveOpInterface.h.inc"
25
26namespace fir {
31bool canMoveFromDescendant(mlir::Operation *op, mlir::Operation *descendant,
32 mlir::Operation *candidate);
33
38bool canMoveOutOf(mlir::Operation *op, mlir::Operation *candidate);
39} // namespace fir
40
41#endif // FORTRAN_OPTIMIZER_DIALECT_FIR_OPERATION_MOVE_OP_INTERFACE_H
Definition AbstractConverter.h:37
bool canMoveOutOf(mlir::Operation *op, mlir::Operation *candidate)
Definition FIROperationMoveOpInterface.cpp:41
bool canMoveFromDescendant(mlir::Operation *op, mlir::Operation *descendant, mlir::Operation *candidate)
Definition FIROperationMoveOpInterface.cpp:26