[llvm] r219643 - Introduce LLVMWriteBitcodeToMemoryBuffer C API function.

Peter Collingbourne peter at pcc.me.uk
Mon Oct 13 17:30:59 PDT 2014


Author: pcc
Date: Mon Oct 13 19:30:59 2014
New Revision: 219643

URL: http://llvm.org/viewvc/llvm-project?rev=219643&view=rev
Log:
Introduce LLVMWriteBitcodeToMemoryBuffer C API function.

Modified:
    llvm/trunk/include/llvm-c/BitWriter.h
    llvm/trunk/lib/Bitcode/Writer/BitWriter.cpp

Modified: llvm/trunk/include/llvm-c/BitWriter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/BitWriter.h?rev=219643&r1=219642&r2=219643&view=diff
==============================================================================
--- llvm/trunk/include/llvm-c/BitWriter.h (original)
+++ llvm/trunk/include/llvm-c/BitWriter.h Mon Oct 13 19:30:59 2014
@@ -45,6 +45,9 @@ int LLVMWriteBitcodeToFD(LLVMModuleRef M
     descriptor. Returns 0 on success. Closes the Handle. */
 int LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int Handle);
 
+/** Writes a module to a new memory buffer and returns it. */
+LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M);
+
 /**
  * @}
  */

Modified: llvm/trunk/lib/Bitcode/Writer/BitWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Writer/BitWriter.cpp?rev=219643&r1=219642&r2=219643&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Writer/BitWriter.cpp (original)
+++ llvm/trunk/lib/Bitcode/Writer/BitWriter.cpp Mon Oct 13 19:30:59 2014
@@ -39,3 +39,11 @@ int LLVMWriteBitcodeToFD(LLVMModuleRef M
 int LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int FileHandle) {
   return LLVMWriteBitcodeToFD(M, FileHandle, true, false);
 }
+
+LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M) {
+  std::string Data;
+  raw_string_ostream OS(Data);
+
+  WriteBitcodeToFile(unwrap(M), OS);
+  return wrap(MemoryBuffer::getMemBufferCopy(OS.str()).release());
+}





More information about the llvm-commits mailing list