Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

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

  1. /*===-- llvm-c/BitReader.h - BitReader 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 libLLVMBitReader.a, which          *|
  11. |* implements input 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_BITREADER_H
  20. #define LLVM_C_BITREADER_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 LLVMCBitReader Bit Reader
  29.  * @ingroup LLVMC
  30.  *
  31.  * @{
  32.  */
  33.  
  34. /* Builds a module from the bitcode in the specified memory buffer, returning a
  35.    reference to the module via the OutModule parameter. Returns 0 on success.
  36.    Optionally returns a human-readable error message via OutMessage.
  37.  
  38.    This is deprecated. Use LLVMParseBitcode2. */
  39. LLVMBool LLVMParseBitcode(LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutModule,
  40.                           char **OutMessage);
  41.  
  42. /* Builds a module from the bitcode in the specified memory buffer, returning a
  43.    reference to the module via the OutModule parameter. Returns 0 on success. */
  44. LLVMBool LLVMParseBitcode2(LLVMMemoryBufferRef MemBuf,
  45.                            LLVMModuleRef *OutModule);
  46.  
  47. /* This is deprecated. Use LLVMParseBitcodeInContext2. */
  48. LLVMBool LLVMParseBitcodeInContext(LLVMContextRef ContextRef,
  49.                                    LLVMMemoryBufferRef MemBuf,
  50.                                    LLVMModuleRef *OutModule, char **OutMessage);
  51.  
  52. LLVMBool LLVMParseBitcodeInContext2(LLVMContextRef ContextRef,
  53.                                     LLVMMemoryBufferRef MemBuf,
  54.                                     LLVMModuleRef *OutModule);
  55.  
  56. /** Reads a module from the specified path, returning via the OutMP parameter
  57.     a module provider which performs lazy deserialization. Returns 0 on success.
  58.     Optionally returns a human-readable error message via OutMessage.
  59.     This is deprecated. Use LLVMGetBitcodeModuleInContext2. */
  60. LLVMBool LLVMGetBitcodeModuleInContext(LLVMContextRef ContextRef,
  61.                                        LLVMMemoryBufferRef MemBuf,
  62.                                        LLVMModuleRef *OutM, char **OutMessage);
  63.  
  64. /** Reads a module from the given memory buffer, returning via the OutMP
  65.  * parameter a module provider which performs lazy deserialization.
  66.  *
  67.  * Returns 0 on success.
  68.  *
  69.  * Takes ownership of \p MemBuf if (and only if) the module was read
  70.  * successfully. */
  71. LLVMBool LLVMGetBitcodeModuleInContext2(LLVMContextRef ContextRef,
  72.                                         LLVMMemoryBufferRef MemBuf,
  73.                                         LLVMModuleRef *OutM);
  74.  
  75. /* This is deprecated. Use LLVMGetBitcodeModule2. */
  76. LLVMBool LLVMGetBitcodeModule(LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM,
  77.                               char **OutMessage);
  78.  
  79. LLVMBool LLVMGetBitcodeModule2(LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM);
  80.  
  81. /**
  82.  * @}
  83.  */
  84.  
  85. LLVM_C_EXTERN_C_END
  86.  
  87. #endif
  88.