1 /*===------- llvm-c/LLJITUtils.h - Advanced LLJIT features --------*- 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 for extra utilities to be used with *| 11 |* the LLJIT class from the llvm-c/LLJIT.h header. It requires to following *| 12 |* link libraries in addition to libLLVMOrcJIT.a: *| 13 |* - libLLVMOrcDebugging.a *| 14 |* *| 15 |* Many exotic languages can interoperate with C code but have a harder time *| 16 |* with C++ due to name mangling. So in addition to C, this interface enables *| 17 |* tools written in such languages. *| 18 |* *| 19 |* Note: This interface is experimental. It is *NOT* stable, and may be *| 20 |* changed without warning. Only C API usage documentation is *| 21 |* provided. See the C++ documentation for all higher level ORC API *| 22 |* details. *| 23 |* *| 24 \*===----------------------------------------------------------------------===*/ 25 26 #ifndef LLVM_C_LLJITUTILS_H 27 #define LLVM_C_LLJITUTILS_H 28 29 #include "llvm-c/LLJIT.h" 30 31 LLVM_C_EXTERN_C_BEGIN 32 33 /** 34 * @defgroup LLVMCExecutionEngineLLJITUtils LLJIT Utilities 35 * @ingroup LLVMCExecutionEngineLLJIT 36 * 37 * @{ 38 */ 39 40 /** 41 * Install the plugin that submits debug objects to the executor. Executors must 42 * expose the llvm_orc_registerJITLoaderGDBWrapper symbol. 43 */ 44 LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J); 45 46 /** 47 * @} 48 */ 49 50 LLVM_C_EXTERN_C_END 51 52 #endif /* LLVM_C_LLJITUTILS_H */ 53