X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FVMCore%2FPrintModulePass.cpp;h=1f1fbc91bc31a4eeb388792335ed4c7f35fb947e;hb=e43d745b5cb7c3731627740bde882a5a5b212140;hp=6740af7069c1765290e561eecacac80fde51b32e;hpb=f4db3a51c7d806f7dcef5d9625e7cdf7f122dca9;p=oota-llvm.git diff --git a/lib/VMCore/PrintModulePass.cpp b/lib/VMCore/PrintModulePass.cpp index 6740af7069c..1f1fbc91bc3 100644 --- a/lib/VMCore/PrintModulePass.cpp +++ b/lib/VMCore/PrintModulePass.cpp @@ -16,27 +16,29 @@ #include "llvm/Function.h" #include "llvm/Module.h" #include "llvm/Pass.h" -#include "llvm/Support/Compiler.h" +#include "llvm/Support/Debug.h" +#include "llvm/Support/raw_ostream.h" using namespace llvm; namespace { - class VISIBILITY_HIDDEN PrintModulePass : public ModulePass { - OStream *Out; // ostream to print on + class PrintModulePass : public ModulePass { + std::string Banner; + raw_ostream *Out; // raw_ostream to print on bool DeleteStream; // Delete the ostream in our dtor? public: static char ID; - PrintModulePass() : ModulePass(intptr_t(&ID)), Out(&cerr), + PrintModulePass() : ModulePass(ID), Out(&dbgs()), DeleteStream(false) {} - PrintModulePass(OStream *o, bool DS) - : ModulePass(intptr_t(&ID)), Out(o), DeleteStream(DS) {} + PrintModulePass(const std::string &B, raw_ostream *o, bool DS) + : ModulePass(ID), Banner(B), Out(o), DeleteStream(DS) {} ~PrintModulePass() { if (DeleteStream) delete Out; } bool runOnModule(Module &M) { - (*Out) << M << std::flush; + (*Out) << Banner << M; return false; } @@ -47,16 +49,16 @@ namespace { class PrintFunctionPass : public FunctionPass { std::string Banner; // String to print before each function - OStream *Out; // ostream to print on + raw_ostream *Out; // raw_ostream to print on bool DeleteStream; // Delete the ostream in our dtor? public: static char ID; - PrintFunctionPass() : FunctionPass(intptr_t(&ID)), Banner(""), Out(&cerr), + PrintFunctionPass() : FunctionPass(ID), Banner(""), Out(&dbgs()), DeleteStream(false) {} - PrintFunctionPass(const std::string &B, OStream *o, bool DS) - : FunctionPass(intptr_t(&ID)), Banner(B), Out(o), DeleteStream(DS) {} + PrintFunctionPass(const std::string &B, raw_ostream *o, bool DS) + : FunctionPass(ID), Banner(B), Out(o), DeleteStream(DS) {} - inline ~PrintFunctionPass() { + ~PrintFunctionPass() { if (DeleteStream) delete Out; } @@ -75,22 +77,25 @@ namespace { } char PrintModulePass::ID = 0; -static RegisterPass -X("print-module", "Print module to stderr"); +INITIALIZE_PASS(PrintModulePass, "print-module", + "Print module to stderr", false, false) char PrintFunctionPass::ID = 0; -static RegisterPass -Y("print-function","Print function to stderr"); +INITIALIZE_PASS(PrintFunctionPass, "print-function", + "Print function to stderr", false, false) /// createPrintModulePass - Create and return a pass that writes the -/// module to the specified OStream. -ModulePass *llvm::createPrintModulePass(llvm::OStream *OS, bool DeleteStream) { - return new PrintModulePass(OS, DeleteStream); +/// module to the specified raw_ostream. +ModulePass *llvm::createPrintModulePass(llvm::raw_ostream *OS, + bool DeleteStream, + const std::string &Banner) { + return new PrintModulePass(Banner, OS, DeleteStream); } /// createPrintFunctionPass - Create and return a pass that prints -/// functions to the specified OStream as they are processed. +/// functions to the specified raw_ostream as they are processed. FunctionPass *llvm::createPrintFunctionPass(const std::string &Banner, - OStream *OS, bool DeleteStream) { + llvm::raw_ostream *OS, + bool DeleteStream) { return new PrintFunctionPass(Banner, OS, DeleteStream); }