Implement the "thread_local" keyword.
[oota-llvm.git] / include / llvm / Bytecode / WriteBytecodePass.h
index 5b6325d521eaecb0d27672c9d8a1ad58b8d67306..b0155e4ddf6921576790222248e842c89a0518ab 100644 (file)
@@ -1,10 +1,10 @@
 //===- 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
 
 #include "llvm/Pass.h"
 #include "llvm/Bytecode/Writer.h"
-#include <iostream>
+#include "llvm/Support/Streams.h"
 
 namespace llvm {
 
 class WriteBytecodePass : public ModulePass {
-  std::ostream *Out;           // ostream to print on
+  OStream *Out;                 // ostream to print on
   bool DeleteStream;
+  bool CompressFile;
 public:
-  WriteBytecodePass() : Out(&std::cout), DeleteStream(false) {}
-  WriteBytecodePass(std::ostream *o, bool DS = false) 
-    : Out(o), DeleteStream(DS) {
-  }
+  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 runOnModule(Module &M) {
-    WriteBytecodeToFile(&M, *Out);    
+    WriteBytecodeToFile(&M, *Out, CompressFile);
     return false;
   }
 };