1193323Sed//===- llvm/Assembly/PrintModulePass.h - Printing Pass ----------*- C++ -*-===//
2193323Sed//
3193323Sed//                     The LLVM Compiler Infrastructure
4193323Sed//
5193323Sed// This file is distributed under the University of Illinois Open Source
6193323Sed// License. See LICENSE.TXT for details.
7193323Sed//
8193323Sed//===----------------------------------------------------------------------===//
9193323Sed//
10193323Sed// This file defines two passes to print out a module.  The PrintModulePass pass
11193323Sed// simply prints out the entire module when it is executed.  The
12193323Sed// PrintFunctionPass class is designed to be pipelined with other
13193323Sed// FunctionPass's, and prints out the functions of the module as they are
14193323Sed// processed.
15193323Sed//
16193323Sed//===----------------------------------------------------------------------===//
17193323Sed
18193323Sed#ifndef LLVM_ASSEMBLY_PRINTMODULEPASS_H
19193323Sed#define LLVM_ASSEMBLY_PRINTMODULEPASS_H
20193323Sed
21193323Sed#include <string>
22193323Sed
23193323Sednamespace llvm {
24193323Sed  class FunctionPass;
25193323Sed  class ModulePass;
26252723Sdim  class BasicBlockPass;
27193323Sed  class raw_ostream;
28193323Sed
29193323Sed  /// createPrintModulePass - Create and return a pass that writes the
30193323Sed  /// module to the specified raw_ostream.
31206124Srdivacky  ModulePass *createPrintModulePass(raw_ostream *OS,
32206124Srdivacky                                    bool DeleteStream=false,
33206124Srdivacky                                    const std::string &Banner = "");
34193323Sed
35193323Sed  /// createPrintFunctionPass - Create and return a pass that prints
36193323Sed  /// functions to the specified raw_ostream as they are processed.
37193323Sed  FunctionPass *createPrintFunctionPass(const std::string &Banner,
38193323Sed                                        raw_ostream *OS,
39193323Sed                                        bool DeleteStream=false);
40193323Sed
41252723Sdim  /// createPrintBasicBlockPass - Create and return a pass that writes the
42252723Sdim  /// BB to the specified raw_ostream.
43252723Sdim  BasicBlockPass *createPrintBasicBlockPass(raw_ostream *OS,
44252723Sdim                                            bool DeleteStream=false,
45252723Sdim                                            const std::string &Banner = "");
46193323Sed} // End llvm namespace
47193323Sed
48193323Sed#endif
49