X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FAssembly%2FPrintModulePass.h;h=0f65235d77de743f073efa1d14f23502be8d70f7;hb=1a957d563fe894c797e0eba00bf069fbe7ecba77;hp=28100805a7b3bb89a41043b82d17cb0775409f51;hpb=d0fde30ce850b78371fd1386338350591f9ff494;p=oota-llvm.git diff --git a/include/llvm/Assembly/PrintModulePass.h b/include/llvm/Assembly/PrintModulePass.h index 28100805a7b..0f65235d77d 100644 --- a/include/llvm/Assembly/PrintModulePass.h +++ b/include/llvm/Assembly/PrintModulePass.h @@ -1,10 +1,10 @@ //===- llvm/Assembly/PrintModulePass.h - Printing Pass ----------*- C++ -*-===// -// +// // The LLVM Compiler Infrastructure // // This file was developed by the LLVM research group and is distributed under // the University of Illinois Open Source License. See LICENSE.TXT for details. -// +// //===----------------------------------------------------------------------===// // // This file defines two passes to print out a module. The PrintModulePass pass @@ -20,23 +20,24 @@ #include "llvm/Pass.h" #include "llvm/Module.h" +#include "llvm/Support/Streams.h" namespace llvm { -class PrintModulePass : public Pass { - std::ostream *Out; // ostream to print on +class PrintModulePass : public ModulePass { + OStream *Out; // ostream to print on bool DeleteStream; // Delete the ostream in our dtor? public: - PrintModulePass() : Out(&std::cerr), DeleteStream(false) {} - PrintModulePass(std::ostream *o, bool DS = false) - : Out(o), DeleteStream(DS) { - } + static char ID; + PrintModulePass() : ModulePass((intptr_t)&ID), Out(&cerr), DeleteStream(false) {} + PrintModulePass(OStream *o, bool DS = false) + : ModulePass((intptr_t)&ID), Out(o), DeleteStream(DS) {} ~PrintModulePass() { if (DeleteStream) delete Out; } - - bool run(Module &M) { + + bool runOnModule(Module &M) { (*Out) << M << std::flush; return false; } @@ -48,27 +49,28 @@ public: class PrintFunctionPass : public FunctionPass { std::string Banner; // String to print before each function - std::ostream *Out; // ostream to print on + OStream *Out; // ostream to print on bool DeleteStream; // Delete the ostream in our dtor? public: - PrintFunctionPass() : Banner(""), Out(&std::cerr), DeleteStream(false) {} - PrintFunctionPass(const std::string &B, std::ostream *o = &std::cout, + static char ID; + PrintFunctionPass() : FunctionPass((intptr_t)&ID), Banner(""), Out(&cerr), + DeleteStream(false) {} + PrintFunctionPass(const std::string &B, OStream *o = &cout, bool DS = false) - : Banner(B), Out(o), DeleteStream(DS) { - } + : FunctionPass((intptr_t)&ID), Banner(B), Out(o), DeleteStream(DS) {} inline ~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 << (Value&)F; + (*Out) << Banner << static_cast(F); return false; } - + virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesAll(); }