[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