[llvm-commits] CVS: llvm/include/llvm/Bitcode/ReaderWriter.h

2007-05-05 Thread Chris Lattner


Changes in directory llvm/include/llvm/Bitcode:

ReaderWriter.h updated: 1.2 - 1.3
---
Log message:

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


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

 ReaderWriter.h |5 +
 1 files changed, 5 insertions(+)


Index: llvm/include/llvm/Bitcode/ReaderWriter.h
diff -u llvm/include/llvm/Bitcode/ReaderWriter.h:1.2 
llvm/include/llvm/Bitcode/ReaderWriter.h:1.3
--- llvm/include/llvm/Bitcode/ReaderWriter.h:1.2Sun Apr 29 02:54:31 2007
+++ llvm/include/llvm/Bitcode/ReaderWriter.hSat May  5 21:30:12 2007
@@ -21,6 +21,7 @@
   class Module;
   class ModuleProvider;
   class MemoryBuffer;
+  class ModulePass;
   
   /// getBitcodeModuleProvider - Read the header of the specified bitcode 
buffer
   /// and prepare for lazy deserialization of function bodies.  If successful,
@@ -38,6 +39,10 @@
   /// WriteBitcodeToFile - Write the specified module to the specified output
   /// stream.
   void WriteBitcodeToFile(const Module *M, std::ostream Out);
+  
+  /// CreateBitcodeWriterPass - Create and return a pass that writes the module
+  /// to the specified ostream.
+  ModulePass *CreateBitcodeWriterPass(std::ostream Str);
 } // End llvm namespace
 
 #endif



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


[llvm-commits] CVS: llvm/include/llvm/Bitcode/ReaderWriter.h

2007-04-29 Thread Chris Lattner


Changes in directory llvm/include/llvm/Bitcode:

ReaderWriter.h updated: 1.1 - 1.2
---
Log message:

Switch the bitcode reader interface to take a MemoryBuffer instead of knowing
anything about disk I/O itself.  This greatly simplifies its interface -
eliminating the need for the ReaderWrappers.cpp file.

This adds a new option to llvm-dis (-bitcode) which instructs it to read
the input file as bitcode.  Until/unless the bytecode reader is taught to
read from MemoryBuffer, there is no way to handle stdin reading without it.

I don't plan to switch the bytecode reader over, I'd rather delete it :),
so the option will stay around temporarily.



---
Diffs of the changes:  (+10 -5)

 ReaderWriter.h |   15 ++-
 1 files changed, 10 insertions(+), 5 deletions(-)


Index: llvm/include/llvm/Bitcode/ReaderWriter.h
diff -u llvm/include/llvm/Bitcode/ReaderWriter.h:1.1 
llvm/include/llvm/Bitcode/ReaderWriter.h:1.2
--- llvm/include/llvm/Bitcode/ReaderWriter.h:1.1Sun Apr 22 01:22:05 2007
+++ llvm/include/llvm/Bitcode/ReaderWriter.hSun Apr 29 02:54:31 2007
@@ -20,15 +20,20 @@
 namespace llvm {
   class Module;
   class ModuleProvider;
+  class MemoryBuffer;
   
-  ModuleProvider *getBitcodeModuleProvider(const std::string Filename,
+  /// getBitcodeModuleProvider - Read the header of the specified bitcode 
buffer
+  /// and prepare for lazy deserialization of function bodies.  If successful,
+  /// this takes ownership of 'buffer' and returns a non-null pointer.  On
+  /// error, this returns null, *does not* take ownership of Buffer, and fills
+  /// in *ErrMsg with an error description if ErrMsg is non-null.
+  ModuleProvider *getBitcodeModuleProvider(MemoryBuffer *Buffer,
std::string *ErrMsg = 0);
 
-  
   /// ParseBitcodeFile - Read the specified bitcode file, returning the module.
-  /// If an error occurs, return null and fill in *ErrMsg if non-null.
-  Module *ParseBitcodeFile(const std::string Filename,
-   std::string *ErrMsg = 0);
+  /// If an error occurs, this returns null and fills in *ErrMsg if it is
+  /// non-null.  This method *never* takes ownership of Buffer.
+  Module *ParseBitcodeFile(MemoryBuffer *Buffer, std::string *ErrMsg = 0);
   
   /// WriteBitcodeToFile - Write the specified module to the specified output
   /// stream.



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits