Implement the "thread_local" keyword.
[oota-llvm.git] / include / llvm / Bytecode / WriteBytecodePass.h
index 297fbb76e1766644b17a78982e76673cf24b4488..b0155e4ddf6921576790222248e842c89a0518ab 100644 (file)
@@ -1,4 +1,11 @@
-//===- llvm/Bytecode/WriteBytecodePass.h - Bytecode Writer Pass --*- C++ -*--=//
+//===- llvm/Bytecode/WriteBytecodePass.h - Bytecode Writer 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 a simple pass to write the working module to a file after
 // pass processing is completed.
 
 #include "llvm/Pass.h"
 #include "llvm/Bytecode/Writer.h"
+#include "llvm/Support/Streams.h"
+
+namespace llvm {
 
-class WriteBytecodePass : public Pass {
-  ostream *Out;           // ostream to print on
+class WriteBytecodePass : public ModulePass {
+  OStream *Out;                 // ostream to print on
   bool DeleteStream;
+  bool CompressFile;
 public:
-  inline WriteBytecodePass(ostream *o = &cout, bool DS = false)
-    : Out(o), DeleteStream(DS) {
-  }
-
-  const char *getPassName() const { return "Bytecode Writer"; }
+  WriteBytecodePass()
+    : Out(&cout), DeleteStream(false), CompressFile(false) {}
+  WriteBytecodePass(OStream *o, bool DS = false, bool CF = false)
+    : Out(o), DeleteStream(DS), CompressFile(CF) {}
 
   inline ~WriteBytecodePass() {
     if (DeleteStream) delete Out;
   }
-  
-  bool run(Module &M) {
-    WriteBytecodeToFile(&M, *Out);    
+
+  bool runOnModule(Module &M) {
+    WriteBytecodeToFile(&M, *Out, CompressFile);
     return false;
   }
 };
 
+} // End llvm namespace
+
 #endif