diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-10-22 03:25:22 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-10-22 03:25:22 +0000 |
commit | 3b475e99db65dccb5b816af218f3335573e7f526 (patch) | |
tree | 07722427aee47227292daf03427c9d0f1b749281 | |
parent | ce0c31ad8f24e16bba6fb62d88b2567ebeaf2dfe (diff) | |
download | external_llvm-3b475e99db65dccb5b816af218f3335573e7f526.zip external_llvm-3b475e99db65dccb5b816af218f3335573e7f526.tar.gz external_llvm-3b475e99db65dccb5b816af218f3335573e7f526.tar.bz2 |
Move Print*Pass to use raw_ostream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57946 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Assembly/PrintModulePass.h | 10 | ||||
-rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 4 | ||||
-rw-r--r-- | lib/VMCore/PrintModulePass.cpp | 27 | ||||
-rw-r--r-- | tools/llvm-dis/llvm-dis.cpp | 3 | ||||
-rw-r--r-- | tools/opt/opt.cpp | 3 |
5 files changed, 27 insertions, 20 deletions
diff --git a/include/llvm/Assembly/PrintModulePass.h b/include/llvm/Assembly/PrintModulePass.h index 7f5acf4..fb4f6a7 100644 --- a/include/llvm/Assembly/PrintModulePass.h +++ b/include/llvm/Assembly/PrintModulePass.h @@ -18,21 +18,21 @@ #ifndef LLVM_ASSEMBLY_PRINTMODULEPASS_H #define LLVM_ASSEMBLY_PRINTMODULEPASS_H -#include "llvm/Support/Streams.h" #include <string> namespace llvm { class FunctionPass; class ModulePass; + class raw_ostream; /// createPrintModulePass - Create and return a pass that writes the - /// module to the specified OStream. - ModulePass *createPrintModulePass(llvm::OStream *OS, bool DeleteStream=false); + /// module to the specified raw_ostream. + ModulePass *createPrintModulePass(raw_ostream *OS, bool DeleteStream=false); /// 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 *createPrintFunctionPass(const std::string &Banner, - llvm::OStream *OS, + raw_ostream *OS, bool DeleteStream=false); } // End llvm namespace diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index bc3c991..fa386b0 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -151,7 +151,7 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM, bool Fast) { if (!Fast) { PM.add(createLoopStrengthReducePass(getTargetLowering())); if (PrintLSR) - PM.add(createPrintFunctionPass("\n\n*** Code after LSR ***\n", &cerr)); + PM.add(createPrintFunctionPass("\n\n*** Code after LSR ***\n", &errs())); } PM.add(createGCLoweringPass()); @@ -168,7 +168,7 @@ bool LLVMTargetMachine::addCommonCodeGenPasses(PassManagerBase &PM, bool Fast) { if (PrintISelInput) PM.add(createPrintFunctionPass("\n\n" "*** Final LLVM Code input to ISel ***\n", - &cerr)); + &errs())); // Standard Lower-Level Passes. diff --git a/lib/VMCore/PrintModulePass.cpp b/lib/VMCore/PrintModulePass.cpp index 6740af7..61e5889 100644 --- a/lib/VMCore/PrintModulePass.cpp +++ b/lib/VMCore/PrintModulePass.cpp @@ -17,18 +17,19 @@ #include "llvm/Module.h" #include "llvm/Pass.h" #include "llvm/Support/Compiler.h" +#include "llvm/Support/raw_ostream.h" using namespace llvm; namespace { class VISIBILITY_HIDDEN PrintModulePass : public ModulePass { - 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; - PrintModulePass() : ModulePass(intptr_t(&ID)), Out(&cerr), + PrintModulePass() : ModulePass(intptr_t(&ID)), Out(&errs()), DeleteStream(false) {} - PrintModulePass(OStream *o, bool DS) + PrintModulePass(raw_ostream *o, bool DS) : ModulePass(intptr_t(&ID)), Out(o), DeleteStream(DS) {} ~PrintModulePass() { @@ -36,7 +37,8 @@ namespace { } bool runOnModule(Module &M) { - (*Out) << M << std::flush; + (*Out) << M; + Out->flush(); return false; } @@ -47,13 +49,13 @@ 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(intptr_t(&ID)), Banner(""), Out(&errs()), DeleteStream(false) {} - PrintFunctionPass(const std::string &B, OStream *o, bool DS) + PrintFunctionPass(const std::string &B, raw_ostream *o, bool DS) : FunctionPass(intptr_t(&ID)), Banner(B), Out(o), DeleteStream(DS) {} inline ~PrintFunctionPass() { @@ -65,6 +67,7 @@ namespace { // bool runOnFunction(Function &F) { (*Out) << Banner << static_cast<Value&>(F); + Out->flush(); return false; } @@ -82,15 +85,17 @@ static RegisterPass<PrintFunctionPass> Y("print-function","Print function to stderr"); /// createPrintModulePass - Create and return a pass that writes the -/// module to the specified OStream. -ModulePass *llvm::createPrintModulePass(llvm::OStream *OS, bool DeleteStream) { +/// module to the specified raw_ostream. +ModulePass *llvm::createPrintModulePass(llvm::raw_ostream *OS, + bool DeleteStream) { return new PrintModulePass(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); } diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp index 276b1e4..89f19e1 100644 --- a/tools/llvm-dis/llvm-dis.cpp +++ b/tools/llvm-dis/llvm-dis.cpp @@ -24,6 +24,7 @@ #include "llvm/Support/ManagedStatic.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Streams.h" +#include "llvm/Support/raw_ostream.h" #include "llvm/System/Signals.h" #include <iostream> #include <fstream> @@ -117,7 +118,7 @@ int main(int argc, char **argv) { // All that llvm-dis does is write the assembly to a file. if (!DontPrint) { PassManager Passes; - OStream L(*Out); + raw_os_ostream L(*Out); Passes.add(createPrintModulePass(&L)); Passes.run(*M.get()); } diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index 358cbda..a339d31 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -30,6 +30,7 @@ #include "llvm/Support/PluginLoader.h" #include "llvm/Support/Streams.h" #include "llvm/Support/SystemUtils.h" +#include "llvm/Support/raw_ostream.h" #include "llvm/LinkAllPasses.h" #include "llvm/LinkAllVMCore.h" #include <iostream> @@ -543,7 +544,7 @@ int main(int argc, char **argv) { } if (PrintEachXForm) - Passes.add(createPrintModulePass(&cerr)); + Passes.add(createPrintModulePass(&errs())); } // If -std-compile-opts was specified at the end of the pass list, add them. |