PassPrinters.h revision 360784
1//=- PassPrinters.h - Utilities to print analysis info for passes -*- C++ -*-=//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// Utilities to print analysis info for various kinds of passes.
11///
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_TOOLS_OPT_PASSPRINTERS_H
15#define LLVM_TOOLS_OPT_PASSPRINTERS_H
16
17#include "llvm/IR/PassManager.h"
18
19namespace llvm {
20
21class CallGraphSCCPass;
22class FunctionPass;
23class ModulePass;
24class LoopPass;
25class PassInfo;
26class raw_ostream;
27class RegionPass;
28class Module;
29
30FunctionPass *createFunctionPassPrinter(const PassInfo *PI, raw_ostream &out,
31                                        bool Quiet);
32
33CallGraphSCCPass *createCallGraphPassPrinter(const PassInfo *PI,
34                                             raw_ostream &out, bool Quiet);
35
36ModulePass *createModulePassPrinter(const PassInfo *PI, raw_ostream &out,
37                                    bool Quiet);
38
39LoopPass *createLoopPassPrinter(const PassInfo *PI, raw_ostream &out,
40                                bool Quiet);
41
42RegionPass *createRegionPassPrinter(const PassInfo *PI, raw_ostream &out,
43                                    bool Quiet);
44
45} // end namespace llvm
46
47#endif // LLVM_TOOLS_OPT_PASSPRINTERS_H
48