[llvm-commits] CVS: llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp

Chris Lattner sabre at nondot.org
Sat May 5 19:30:34 PDT 2007



Changes in directory llvm/lib/Bitcode/Writer:

BitcodeWriterPass.cpp added (r1.1)
---
Log message:

add a new CreateBitcodeWriterPass method, which creates a bitcode writer as
a pass


---
Diffs of the changes:  (+43 -0)

 BitcodeWriterPass.cpp |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+)


Index: llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
diff -c /dev/null llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp:1.1
*** /dev/null	Sat May  5 21:30:22 2007
--- llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp	Sat May  5 21:30:12 2007
***************
*** 0 ****
--- 1,43 ----
+ //===--- Bitcode/Writer/BitcodeWriterPass.cpp - Bitcode Writer ------------===//
+ //
+ //                     The LLVM Compiler Infrastructure
+ //
+ // This file was developed by Chris Lattner and is distributed under
+ // the University of Illinois Open Source License. See LICENSE.TXT for details.
+ //
+ //===----------------------------------------------------------------------===//
+ //
+ // BitcodeWriterPass implementation.
+ //
+ //===----------------------------------------------------------------------===//
+ 
+ #include "llvm/Bitcode/ReaderWriter.h"
+ #include "llvm/Pass.h"
+ using namespace llvm;
+ 
+ namespace {
+   class WriteBitcodePass : public ModulePass {
+     std::ostream *Out;                 // ostream to print on
+   public:
+     static char ID; // Pass identifcation, replacement for typeid
+     WriteBitcodePass() : ModulePass((intptr_t) &ID), Out(0) { } 
+     WriteBitcodePass(std::ostream &o) : ModulePass((intptr_t) &ID), Out(&o) {}
+     
+     bool runOnModule(Module &M) {
+       if (Out)
+         WriteBitcodeToFile(&M, *Out);
+       return false;
+     }
+   };
+ }
+ 
+ char WriteBitcodePass::ID = 0;
+ static RegisterPass<WriteBitcodePass> X("emitbitcode", "Bitcode Writer");
+ 
+ /// CreateBitcodeWriterPass - Create and return a pass that writes the module
+ /// to the specified ostream.
+ ModulePass *llvm::CreateBitcodeWriterPass(std::ostream &Str) {
+   return new WriteBitcodePass(Str);
+ }
+ 
+ 






More information about the llvm-commits mailing list