1//===- PassPrinters.h - Utilities to print analysis info for passes -------===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9///
10/// \file
11/// \brief Utilities to print analysis info for various kinds of passes.
12///
13//===----------------------------------------------------------------------===//
14#ifndef LLVM_TOOLS_OPT_PASSPRINTERS_H
15#define LLVM_TOOLS_OPT_PASSPRINTERS_H
16
17namespace llvm {
18
19class BasicBlockPass;
20class CallGraphSCCPass;
21class FunctionPass;
22class ModulePass;
23class LoopPass;
24class PassInfo;
25class RegionPass;
26class raw_ostream;
27
28FunctionPass *createFunctionPassPrinter(const PassInfo *PI, raw_ostream &out,
29                                        bool Quiet);
30
31CallGraphSCCPass *createCallGraphPassPrinter(const PassInfo *PI,
32                                             raw_ostream &out, bool Quiet);
33
34ModulePass *createModulePassPrinter(const PassInfo *PI, raw_ostream &out,
35                                    bool Quiet);
36
37LoopPass *createLoopPassPrinter(const PassInfo *PI, raw_ostream &out,
38                                bool Quiet);
39
40RegionPass *createRegionPassPrinter(const PassInfo *PI, raw_ostream &out,
41                                    bool Quiet);
42
43BasicBlockPass *createBasicBlockPassPrinter(const PassInfo *PI,
44                                            raw_ostream &out, bool Quiet);
45}
46
47#endif // LLVM_TOOLS_OPT_PASSPRINTERS_H
48