diff options
Diffstat (limited to 'include/llvm/IR/IRPrintingPasses.h')
-rw-r--r-- | include/llvm/IR/IRPrintingPasses.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/include/llvm/IR/IRPrintingPasses.h b/include/llvm/IR/IRPrintingPasses.h new file mode 100644 index 0000000000..45d3c7a120 --- /dev/null +++ b/include/llvm/IR/IRPrintingPasses.h @@ -0,0 +1,49 @@ +//===- IRPrintingPasses.h - Passes to print out IR constructs ---*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +/// \file +/// +/// This file defines passes to print out IR in various granularities. The +/// PrintModulePass pass simply prints out the entire module when it is +/// executed. The PrintFunctionPass class is designed to be pipelined with +/// other FunctionPass's, and prints out the functions of the module as they +/// are processed. +/// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_IR_PRINTMODULEPASS_H +#define LLVM_IR_PRINTMODULEPASS_H + +#include <string> + +namespace llvm { +class FunctionPass; +class ModulePass; +class BasicBlockPass; +class raw_ostream; + +/// \brief Create and return a pass that writes the module to the specified +/// \c raw_ostream. +ModulePass *createPrintModulePass(raw_ostream *OS, bool DeleteStream = false, + const std::string &Banner = ""); + +/// \brief Create and return a pass that prints functions to the specified +/// \c raw_ostream as they are processed. +FunctionPass *createPrintFunctionPass(const std::string &Banner, + raw_ostream *OS, + bool DeleteStream = false); + +/// \brief Create and return a pass that writes the BB to the specified +/// \c raw_ostream. +BasicBlockPass *createPrintBasicBlockPass(raw_ostream *OS, + bool DeleteStream = false, + const std::string &Banner = ""); + +} // End llvm namespace + +#endif |