diff --git a/flang/include/flang/Optimizer/Dialect/FIRDialect.h b/flang/include/flang/Optimizer/Dialect/FIRDialect.h --- a/flang/include/flang/Optimizer/Dialect/FIRDialect.h +++ b/flang/include/flang/Optimizer/Dialect/FIRDialect.h @@ -15,6 +15,10 @@ #include "mlir/IR/Dialect.h" +namespace mlir { +class BlockAndValueMapping; +} // namespace mlir + namespace fir { /// FIR dialect @@ -50,6 +54,11 @@ static llvm::StringRef getDialectNamespace() { return "fircg"; } }; +/// Support for inlining on FIR. +bool canLegallyInline(mlir::Operation *op, mlir::Region *reg, bool, + mlir::BlockAndValueMapping &map); +bool canLegallyInline(mlir::Operation *, mlir::Operation *, bool); + } // namespace fir #endif // FORTRAN_OPTIMIZER_DIALECT_FIRDIALECT_H diff --git a/flang/include/flang/Optimizer/Transforms/Passes.h b/flang/include/flang/Optimizer/Transforms/Passes.h --- a/flang/include/flang/Optimizer/Transforms/Passes.h +++ b/flang/include/flang/Optimizer/Transforms/Passes.h @@ -36,10 +36,6 @@ std::unique_ptr createPromoteToAffinePass(); std::unique_ptr createMemoryAllocationPass(); -/// Support for inlining on FIR. -bool canLegallyInline(mlir::Operation *op, mlir::Region *reg, - mlir::BlockAndValueMapping &map); - // declarative passes #define GEN_PASS_REGISTRATION #include "flang/Optimizer/Transforms/Passes.h.inc" diff --git a/flang/lib/Optimizer/Dialect/CMakeLists.txt b/flang/lib/Optimizer/Dialect/CMakeLists.txt --- a/flang/lib/Optimizer/Dialect/CMakeLists.txt +++ b/flang/lib/Optimizer/Dialect/CMakeLists.txt @@ -3,6 +3,7 @@ FIRDialect.cpp FIROps.cpp FIRType.cpp + Inliner.cpp DEPENDS CanonicalizationPatternsIncGen diff --git a/flang/lib/Optimizer/Transforms/Inliner.cpp b/flang/lib/Optimizer/Dialect/Inliner.cpp rename from flang/lib/Optimizer/Transforms/Inliner.cpp rename to flang/lib/Optimizer/Dialect/Inliner.cpp --- a/flang/lib/Optimizer/Transforms/Inliner.cpp +++ b/flang/lib/Optimizer/Dialect/Inliner.cpp @@ -7,9 +7,6 @@ //===----------------------------------------------------------------------===// #include "flang/Optimizer/Dialect/FIRDialect.h" -#include "flang/Optimizer/Dialect/FIROps.h" -#include "flang/Optimizer/Transforms/Passes.h" -#include "mlir/Transforms/Passes.h" #include "llvm/Support/CommandLine.h" static llvm::cl::opt @@ -18,7 +15,11 @@ llvm::cl::init(false)); /// Should we inline the callable `op` into region `reg`? -bool fir::canLegallyInline(mlir::Operation *op, mlir::Region *reg, - mlir::BlockAndValueMapping &map) { +bool fir::canLegallyInline(mlir::Operation *, mlir::Region *, bool, + mlir::BlockAndValueMapping &) { + return aggressivelyInline; +} + +bool fir::canLegallyInline(mlir::Operation *, mlir::Operation *, bool) { return aggressivelyInline; } diff --git a/flang/lib/Optimizer/Transforms/CMakeLists.txt b/flang/lib/Optimizer/Transforms/CMakeLists.txt --- a/flang/lib/Optimizer/Transforms/CMakeLists.txt +++ b/flang/lib/Optimizer/Transforms/CMakeLists.txt @@ -4,7 +4,6 @@ AffineDemotion.cpp CharacterConversion.cpp ArrayValueCopy.cpp - Inliner.cpp ExternalNameConversion.cpp MemoryAllocation.cpp MemRefDataFlowOpt.cpp