5#include "spdlog/spdlog.h"
7#include "mlir/Pass/PassManager.h"
8#include "llvm/Support/raw_ostream.h"
9#include "llvm/Support/FileSystem.h"
10#include "mlir/Pass/PassInstrumentation.h"
18 spdlog::info(
"Started pass: {}", pass->getName().str());
20 void runAfterPass(mlir::Pass *pass, mlir::Operation *op)
override {
21 spdlog::info(
"Finished pass: {}", pass->getName().str());
24 spdlog::error(
"Failed pass: {}", pass->getName().str());
44 void run(mlir::ModuleOp module);
57 void addHighLevelOptimizationPasses();
58 void addAffineLoweringPasses();
59 void addRuntimeLoweringPasses();
60 void addBackendLoweringPasses();
63 std::unique_ptr<llvm::raw_fd_ostream> _outStream;
64 mlir::PassManager _passManager;
void run(mlir::ModuleOp module)
Runs the pass manager on the given MLIR module.
Definition pass_manager.cpp:30
IRPassManager(mlir::MLIRContext *context)
Constructs an IRPassManager with the given MLIR context. Also sets up the output stream and configure...
Definition pass_manager.cpp:14
Definition pass_manager.h:16
void runAfterPass(mlir::Pass *pass, mlir::Operation *op) override
Definition pass_manager.h:20
void runBeforePass(mlir::Pass *pass, mlir::Operation *op) override
Definition pass_manager.h:17
void runAfterPassFailed(mlir::Pass *pass, mlir::Operation *op) override
Definition pass_manager.h:23