//===- Inliner.h - Inliner pass utilities -----------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This header file declares utility structures for the inliner pass. // //===----------------------------------------------------------------------===// #ifndef MLIR_TRANSFORMS_INLINER_H #define MLIR_TRANSFORMS_INLINER_H #include "mlir/Analysis/CallGraph.h" #include "mlir/Interfaces/CallInterfaces.h" #include "mlir/Pass/AnalysisManager.h" #include "mlir/Pass/PassManager.h" #include "llvm/ADT/StringMap.h" namespace mlir { class OpPassManager; class Operation; class InlinerConfig { … }; /// This is an implementation of the inliner /// that operates bottom up over the Strongly Connected Components(SCCs) /// of the CallGraph. This enables a more incremental propagation /// of inlining decisions from the leafs to the roots of the callgraph. class Inliner { … }; } // namespace mlir #endif // MLIR_TRANSFORMS_INLINER_H