xref: /freebsd/contrib/llvm-project/llvm/include/llvm-c/LLJITUtils.h (revision 5b56413d04e608379c9a306373554a8e4d321bc0)
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