X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FBitcode%2FReaderWriter.h;h=8cfa693772e4c97ee0be99089686562e03058a85;hb=e089160d1065d83986fd97fae7f0af08c03e7d47;hp=0522f1bb28eff42b1b08870b9dce7a98f3e933e9;hpb=b35ca9db9ce25e6b61aa3eaee41464f647d34899;p=oota-llvm.git diff --git a/include/llvm/Bitcode/ReaderWriter.h b/include/llvm/Bitcode/ReaderWriter.h index 0522f1bb28e..8cfa693772e 100644 --- a/include/llvm/Bitcode/ReaderWriter.h +++ b/include/llvm/Bitcode/ReaderWriter.h @@ -2,8 +2,8 @@ // // 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. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -20,19 +20,29 @@ namespace llvm { class Module; class ModuleProvider; + class MemoryBuffer; + class ModulePass; - 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. 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