X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=lib%2FIR%2FIRPrintingPasses.cpp;h=4398a9cfd2aaee8a5373b5e7c3d378db3c56e713;hp=7240fd05807f9d89320881d3224957c26d418cbc;hb=2ad3b87c4e1dfb8a49537ef51be5a13ea244f867;hpb=8a5351f0f5123b9e36116ac1761b20c3a264ec09 diff --git a/lib/IR/IRPrintingPasses.cpp b/lib/IR/IRPrintingPasses.cpp index 7240fd05807..4398a9cfd2a 100644 --- a/lib/IR/IRPrintingPasses.cpp +++ b/lib/IR/IRPrintingPasses.cpp @@ -21,116 +21,112 @@ using namespace llvm; namespace { - 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(ID), Out(&dbgs()), - DeleteStream(false) {} - 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) << Banner << M; - return false; - } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - } - }; - - class PrintFunctionPass : public FunctionPass { - std::string Banner; // String to print before each function - raw_ostream *Out; // raw_ostream to print on - bool DeleteStream; // Delete the ostream in our dtor? - public: - static char ID; - PrintFunctionPass() : FunctionPass(ID), Banner(""), Out(&dbgs()), - DeleteStream(false) {} - PrintFunctionPass(const std::string &B, raw_ostream *o, bool DS) +class PrintModulePass : public ModulePass { + std::string Banner; + raw_ostream *Out; + bool DeleteStream; + +public: + static char ID; + PrintModulePass() : ModulePass(ID), Out(&dbgs()), DeleteStream(false) {} + 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) << Banner << M; + return false; + } + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.setPreservesAll(); + } +}; + +class PrintFunctionPass : public FunctionPass { + std::string Banner; + raw_ostream *Out; + bool DeleteStream; + +public: + static char ID; + PrintFunctionPass() + : FunctionPass(ID), Banner(""), Out(&dbgs()), DeleteStream(false) {} + PrintFunctionPass(const std::string &B, raw_ostream *o, bool DS) : FunctionPass(ID), Banner(B), Out(o), DeleteStream(DS) {} - - ~PrintFunctionPass() { - if (DeleteStream) delete Out; - } - - // runOnFunction - This pass just prints a banner followed by the - // function as it's processed. - // - bool runOnFunction(Function &F) { - (*Out) << Banner << static_cast(F); - return false; - } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - } - }; - - class PrintBasicBlockPass : public BasicBlockPass { - std::string Banner; - raw_ostream *Out; // raw_ostream to print on - bool DeleteStream; // Delete the ostream in our dtor? - public: - static char ID; - PrintBasicBlockPass() : BasicBlockPass(ID), Out(&dbgs()), - DeleteStream(false) {} - PrintBasicBlockPass(const std::string &B, raw_ostream *o, bool DS) - : BasicBlockPass(ID), Banner(B), Out(o), DeleteStream(DS) {} - - ~PrintBasicBlockPass() { - if (DeleteStream) delete Out; - } - - bool runOnBasicBlock(BasicBlock &BB) { - (*Out) << Banner << BB; - return false; - } - - virtual void getAnalysisUsage(AnalysisUsage &AU) const { - AU.setPreservesAll(); - } - }; + + ~PrintFunctionPass() { + if (DeleteStream) + delete Out; + } + + // This pass just prints a banner followed by the function as it's processed. + bool runOnFunction(Function &F) { + (*Out) << Banner << static_cast(F); + return false; + } + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.setPreservesAll(); + } +}; + +class PrintBasicBlockPass : public BasicBlockPass { + std::string Banner; + raw_ostream *Out; + bool DeleteStream; + +public: + static char ID; + PrintBasicBlockPass() + : BasicBlockPass(ID), Out(&dbgs()), DeleteStream(false) {} + PrintBasicBlockPass(const std::string &B, raw_ostream *o, bool DS) + : BasicBlockPass(ID), Banner(B), Out(o), DeleteStream(DS) {} + + ~PrintBasicBlockPass() { + if (DeleteStream) + delete Out; + } + + bool runOnBasicBlock(BasicBlock &BB) { + (*Out) << Banner << BB; + return false; + } + + virtual void getAnalysisUsage(AnalysisUsage &AU) const { + AU.setPreservesAll(); + } +}; } char PrintModulePass::ID = 0; -INITIALIZE_PASS(PrintModulePass, "print-module", - "Print module to stderr", false, false) +INITIALIZE_PASS(PrintModulePass, "print-module", "Print module to stderr", + false, false) char PrintFunctionPass::ID = 0; -INITIALIZE_PASS(PrintFunctionPass, "print-function", - "Print function to stderr", false, false) +INITIALIZE_PASS(PrintFunctionPass, "print-function", "Print function to stderr", + false, false) char PrintBasicBlockPass::ID = 0; -INITIALIZE_PASS(PrintBasicBlockPass, "print-bb", - "Print BB to stderr", false, false) +INITIALIZE_PASS(PrintBasicBlockPass, "print-bb", "Print BB to stderr", false, + false) -/// createPrintModulePass - Create and return a pass that writes the -/// module to the specified raw_ostream. -ModulePass *llvm::createPrintModulePass(llvm::raw_ostream *OS, +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 raw_ostream as they are processed. FunctionPass *llvm::createPrintFunctionPass(const std::string &Banner, - llvm::raw_ostream *OS, + llvm::raw_ostream *OS, bool DeleteStream) { return new PrintFunctionPass(Banner, OS, DeleteStream); } -/// createPrintBasicBlockPass - Create and return a pass that writes the -/// BB to the specified raw_ostream. BasicBlockPass *llvm::createPrintBasicBlockPass(llvm::raw_ostream *OS, - bool DeleteStream, - const std::string &Banner) { + bool DeleteStream, + const std::string &Banner) { return new PrintBasicBlockPass(Banner, OS, DeleteStream); } -