blob: e66f3f457b7ace49b1fe2de30d896ccc2948f3cc [file] [log] [blame]
Eugene Zelenko046ca042017-08-31 21:56:16 +00001//=- PassPrinters.h - Utilities to print analysis info for passes -*- C++ -*-=//
Eli Bendersky8ed971b2014-02-10 23:34:23 +00002//
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
Adrian Prantl26b584c2018-05-01 15:54:18 +000011/// Utilities to print analysis info for various kinds of passes.
Eli Bendersky8ed971b2014-02-10 23:34:23 +000012///
13//===----------------------------------------------------------------------===//
Eugene Zelenko046ca042017-08-31 21:56:16 +000014
Eli Bendersky8ed971b2014-02-10 23:34:23 +000015#ifndef LLVM_TOOLS_OPT_PASSPRINTERS_H
16#define LLVM_TOOLS_OPT_PASSPRINTERS_H
17
Vedant Kumarb8c067b2018-02-15 21:14:36 +000018#include "llvm/IR/PassManager.h"
19
Eli Bendersky8ed971b2014-02-10 23:34:23 +000020namespace llvm {
21
22class BasicBlockPass;
23class CallGraphSCCPass;
24class FunctionPass;
25class ModulePass;
26class LoopPass;
27class PassInfo;
Eli Bendersky8ed971b2014-02-10 23:34:23 +000028class raw_ostream;
Eugene Zelenko046ca042017-08-31 21:56:16 +000029class RegionPass;
Vedant Kumarb8c067b2018-02-15 21:14:36 +000030class Module;
Eli Bendersky8ed971b2014-02-10 23:34:23 +000031
32FunctionPass *createFunctionPassPrinter(const PassInfo *PI, raw_ostream &out,
33 bool Quiet);
34
35CallGraphSCCPass *createCallGraphPassPrinter(const PassInfo *PI,
36 raw_ostream &out, bool Quiet);
37
38ModulePass *createModulePassPrinter(const PassInfo *PI, raw_ostream &out,
39 bool Quiet);
40
41LoopPass *createLoopPassPrinter(const PassInfo *PI, raw_ostream &out,
42 bool Quiet);
43
44RegionPass *createRegionPassPrinter(const PassInfo *PI, raw_ostream &out,
45 bool Quiet);
46
47BasicBlockPass *createBasicBlockPassPrinter(const PassInfo *PI,
48 raw_ostream &out, bool Quiet);
Eugene Zelenko046ca042017-08-31 21:56:16 +000049
50} // end namespace llvm
Eli Bendersky8ed971b2014-02-10 23:34:23 +000051
Eli Bendersky8ed971b2014-02-10 23:34:23 +000052#endif // LLVM_TOOLS_OPT_PASSPRINTERS_H