diff options
author | Chris Lattner <sabre@nondot.org> | 2007-04-29 07:54:31 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-04-29 07:54:31 +0000 |
commit | c453f76e2b4d7fd1e042b5b6d4c20556779186df (patch) | |
tree | a24882c0c4c773a77d7e16562335fe8364ffc47d /include/llvm/Bitcode/ReaderWriter.h | |
parent | 333ffd4abfcc3be32a945dc73c81adeafde1ba6b (diff) |
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36554 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode/ReaderWriter.h')
-rw-r--r-- | include/llvm/Bitcode/ReaderWriter.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/include/llvm/Bitcode/ReaderWriter.h b/include/llvm/Bitcode/ReaderWriter.h index 0522f1bb28..a37cc7bf4c 100644 --- a/include/llvm/Bitcode/ReaderWriter.h +++ b/include/llvm/Bitcode/ReaderWriter.h @@ -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. |