Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*===-- llvm-c/BitWriter.h - BitWriter Library C Interface ------*- C++ -*-===*\
  2. |*                                                                            *|
  3. |* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
  4. |* Exceptions.                                                                *|
  5. |* See https://llvm.org/LICENSE.txt for license information.                  *|
  6. |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
  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.  
  19. #ifndef LLVM_C_BITWRITER_H
  20. #define LLVM_C_BITWRITER_H
  21.  
  22. #include "llvm-c/ExternC.h"
  23. #include "llvm-c/Types.h"
  24.  
  25. LLVM_C_EXTERN_C_BEGIN
  26.  
  27. /**
  28.  * @defgroup LLVMCBitWriter Bit Writer
  29.  * @ingroup LLVMC
  30.  *
  31.  * @{
  32.  */
  33.  
  34. /*===-- Operations on modules ---------------------------------------------===*/
  35.  
  36. /** Writes a module to the specified path. Returns 0 on success. */
  37. int LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path);
  38.  
  39. /** Writes a module to an open file descriptor. Returns 0 on success. */
  40. int LLVMWriteBitcodeToFD(LLVMModuleRef M, int FD, int ShouldClose,
  41.                          int Unbuffered);
  42.  
  43. /** Deprecated for LLVMWriteBitcodeToFD. Writes a module to an open file
  44.     descriptor. Returns 0 on success. Closes the Handle. */
  45. int LLVMWriteBitcodeToFileHandle(LLVMModuleRef M, int Handle);
  46.  
  47. /** Writes a module to a new memory buffer and returns it. */
  48. LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M);
  49.  
  50. /**
  51.  * @}
  52.  */
  53.  
  54. LLVM_C_EXTERN_C_END
  55.  
  56. #endif
  57.