BitWriter.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*===-- llvm-c/BitWriter.h - BitWriter Library C Interface ------*- C++ -*-===*\
  2. |* *|
  3. |* The LLVM Compiler Infrastructure *|
  4. |* *|
  5. |* This file is distributed under the University of Illinois Open Source *|
  6. |* License. See LICENSE.TXT for details. *|
  7. |* *|
  8. |*===----------------------------------------------------------------------===*|
  9. |* *|
  10. |* This header declares the C interface to libLLVMBitWriter.a, which *|
  11. |* implements output of the LLVM bitcode format. *|
  12. |* *|
  13. |* Many exotic languages can interoperate with C code but have a harder time *|
  14. |* with C++ due to name mangling. So in addition to C, this interface enables *|
  15. |* tools written in such languages. *|
  16. |* *|
  17. \*===----------------------------------------------------------------------===*/
  18. #ifndef LLVM_C_BITWRITER_H
  19. #define LLVM_C_BITWRITER_H
  20. #include "llvm-c/Core.h"
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. /**
  25. * @defgroup LLVMCBitWriter Bit Writer
  26. * @ingroup LLVMC
  27. *
  28. * @{
  29. */
  30. /*===-- Operations on modules ---------------------------------------------===*/
  31. /** Writes a module to the specified path. Returns 0 on success. */
  32. int LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path);
  33. /** Writes a module to an open file descriptor. Returns 0 on success. */
  34. int LLVMWriteBitcodeToFD(LLVMModuleRef M, int FD, int ShouldClose,
  35. int Unbuffered);
  36. /** Deprecated for LLVMWriteBitcodeToFD. Writes a module to an open file
  37. descriptor. Returns 0 on success. Closes the Handle. */
  38. int LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int Handle);
  39. /** Writes a module to a new memory buffer and returns it. */
  40. LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M);
  41. /**
  42. * @}
  43. */
  44. #ifdef __cplusplus
  45. }
  46. #endif
  47. #endif