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