xref: /llvm-project/mlir/lib/Transforms/PrintIR.cpp (revision bda9474f57340ad4043e3740707498f606b827a5)
1bdb955b3SFrederik Gossen //===- PrintIR.cpp - Pass to dump IR on debug stream ----------------------===//
2bdb955b3SFrederik Gossen //
3bdb955b3SFrederik Gossen // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4bdb955b3SFrederik Gossen // See https://llvm.org/LICENSE.txt for license information.
5bdb955b3SFrederik Gossen // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6bdb955b3SFrederik Gossen //
7bdb955b3SFrederik Gossen //===----------------------------------------------------------------------===//
8bdb955b3SFrederik Gossen 
9bdb955b3SFrederik Gossen #include "mlir/Pass/Pass.h"
10f0594b6fSFrederik Gossen #include "mlir/Transforms/Passes.h"
11f0594b6fSFrederik Gossen #include "llvm/Support/Debug.h"
12bdb955b3SFrederik Gossen 
13bdb955b3SFrederik Gossen namespace mlir {
14bdb955b3SFrederik Gossen namespace {
15bdb955b3SFrederik Gossen 
16bdb955b3SFrederik Gossen #define GEN_PASS_DEF_PRINTIRPASS
17bdb955b3SFrederik Gossen #include "mlir/Transforms/Passes.h.inc"
18bdb955b3SFrederik Gossen 
19bdb955b3SFrederik Gossen struct PrintIRPass : public impl::PrintIRPassBase<PrintIRPass> {
20f0594b6fSFrederik Gossen   using impl::PrintIRPassBase<PrintIRPass>::PrintIRPassBase;
21bdb955b3SFrederik Gossen 
22f0594b6fSFrederik Gossen   void runOnOperation() override {
23f0594b6fSFrederik Gossen     llvm::dbgs() << "// -----// IR Dump";
24f0594b6fSFrederik Gossen     if (!this->label.empty())
25f0594b6fSFrederik Gossen       llvm::dbgs() << " " << this->label;
26f0594b6fSFrederik Gossen     llvm::dbgs() << " //----- //\n";
27f0594b6fSFrederik Gossen     getOperation()->dump();
28*42c413b4SHideto Ueno     markAllAnalysesPreserved();
29f0594b6fSFrederik Gossen   }
30bdb955b3SFrederik Gossen };
31bdb955b3SFrederik Gossen 
32bdb955b3SFrederik Gossen } // namespace
33bdb955b3SFrederik Gossen 
34f0594b6fSFrederik Gossen std::unique_ptr<Pass> createPrintIRPass(const PrintIRPassOptions &options) {
35f0594b6fSFrederik Gossen   return std::make_unique<PrintIRPass>(options);
36bdb955b3SFrederik Gossen }
37bdb955b3SFrederik Gossen 
38bdb955b3SFrederik Gossen } // namespace mlir
39