Project Alice
Loading...
Searching...
No Matches
LLJIT.h
Go to the documentation of this file.
1/*===----------- llvm-c/LLJIT.h - OrcV2 LLJIT C bindings ----------*- 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 the LLJIT class in *|
11|* libLLVMOrcJIT.a, which provides a simple MCJIT-like ORC JIT. *|
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|* Note: This interface is experimental. It is *NOT* stable, and may be *|
18|* changed without warning. Only C API usage documentation is *|
19|* provided. See the C++ documentation for all higher level ORC API *|
20|* details. *|
21|* *|
22\*===----------------------------------------------------------------------===*/
23
24#ifndef LLVM_C_LLJIT_H
25#define LLVM_C_LLJIT_H
26
27#include "llvm-c/Error.h"
28#include "llvm-c/Orc.h"
30#include "llvm-c/Types.h"
31
33
56 void *Ctx, LLVMOrcExecutionSessionRef ES, const char *Triple);
57
61typedef struct LLVMOrcOpaqueLLJITBuilder *LLVMOrcLLJITBuilderRef;
62
66typedef struct LLVMOrcOpaqueLLJIT *LLVMOrcLLJITRef;
67
75
82
94
101
117 LLVMOrcLLJITBuilderRef Builder);
118
123
131
139
145
150
159LLVMOrcLLJITMangleAndIntern(LLVMOrcLLJITRef J, const char *UnmangledName);
160
171 LLVMMemoryBufferRef ObjBuffer);
172
184 LLVMMemoryBufferRef ObjBuffer);
185
198
211
219 const char *Name);
220
225
231
236
244
250
251#endif /* LLVM_C_LLJIT_H */
#define LLVM_C_EXTERN_C_BEGIN
Definition: ExternC.h:35
#define LLVM_C_EXTERN_C_END
Definition: ExternC.h:36
struct LLVMOpaqueError * LLVMErrorRef
Definition: Error.h:33
LLVMErrorRef LLVMOrcLLJITAddObjectFile(LLVMOrcLLJITRef J, LLVMOrcJITDylibRef JD, LLVMMemoryBufferRef ObjBuffer)
LLVMErrorRef LLVMOrcLLJITAddLLVMIRModuleWithRT(LLVMOrcLLJITRef J, LLVMOrcResourceTrackerRef JD, LLVMOrcThreadSafeModuleRef TSM)
struct LLVMOrcOpaqueLLJIT * LLVMOrcLLJITRef
Definition: LLJIT.h:66
LLVMOrcObjectLayerRef(* LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction)(void *Ctx, LLVMOrcExecutionSessionRef ES, const char *Triple)
Definition: LLJIT.h:55
void LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(LLVMOrcLLJITBuilderRef Builder, LLVMOrcJITTargetMachineBuilderRef JTMB)
LLVMErrorRef LLVMOrcDisposeLLJIT(LLVMOrcLLJITRef J)
LLVMOrcObjectLayerRef LLVMOrcLLJITGetObjLinkingLayer(LLVMOrcLLJITRef J)
LLVMErrorRef LLVMOrcLLJITAddLLVMIRModule(LLVMOrcLLJITRef J, LLVMOrcJITDylibRef JD, LLVMOrcThreadSafeModuleRef TSM)
LLVMErrorRef LLVMOrcLLJITAddObjectFileWithRT(LLVMOrcLLJITRef J, LLVMOrcResourceTrackerRef RT, LLVMMemoryBufferRef ObjBuffer)
LLVMOrcSymbolStringPoolEntryRef LLVMOrcLLJITMangleAndIntern(LLVMOrcLLJITRef J, const char *UnmangledName)
LLVMOrcJITDylibRef LLVMOrcLLJITGetMainJITDylib(LLVMOrcLLJITRef J)
struct LLVMOrcOpaqueLLJITBuilder * LLVMOrcLLJITBuilderRef
Definition: LLJIT.h:61
void LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(LLVMOrcLLJITBuilderRef Builder, LLVMOrcLLJITBuilderObjectLinkingLayerCreatorFunction F, void *Ctx)
LLVMOrcIRTransformLayerRef LLVMOrcLLJITGetIRTransformLayer(LLVMOrcLLJITRef J)
const char * LLVMOrcLLJITGetTripleString(LLVMOrcLLJITRef J)
LLVMOrcLLJITBuilderRef LLVMOrcCreateLLJITBuilder(void)
void LLVMOrcDisposeLLJITBuilder(LLVMOrcLLJITBuilderRef Builder)
LLVMOrcExecutionSessionRef LLVMOrcLLJITGetExecutionSession(LLVMOrcLLJITRef J)
LLVMOrcObjectTransformLayerRef LLVMOrcLLJITGetObjTransformLayer(LLVMOrcLLJITRef J)
LLVMErrorRef LLVMOrcCreateLLJIT(LLVMOrcLLJITRef *Result, LLVMOrcLLJITBuilderRef Builder)
char LLVMOrcLLJITGetGlobalPrefix(LLVMOrcLLJITRef J)
const char * LLVMOrcLLJITGetDataLayoutStr(LLVMOrcLLJITRef J)
LLVMErrorRef LLVMOrcLLJITLookup(LLVMOrcLLJITRef J, LLVMOrcExecutorAddress *Result, const char *Name)
struct LLVMOrcOpaqueObjectTransformLayer * LLVMOrcObjectTransformLayerRef
Definition: Orc.h:434
struct LLVMOrcOpaqueJITTargetMachineBuilder * LLVMOrcJITTargetMachineBuilderRef
Definition: Orc.h:394
struct LLVMOrcOpaqueThreadSafeModule * LLVMOrcThreadSafeModuleRef
Definition: Orc.h:382
struct LLVMOrcOpaqueExecutionSession * LLVMOrcExecutionSessionRef
Definition: Orc.h:88
struct LLVMOrcOpaqueResourceTracker * LLVMOrcResourceTrackerRef
Definition: Orc.h:299
uint64_t LLVMOrcExecutorAddress
Definition: Orc.h:51
struct LLVMOrcOpaqueObjectLayer * LLVMOrcObjectLayerRef
Definition: Orc.h:400
struct LLVMOrcOpaqueSymbolStringPoolEntry * LLVMOrcSymbolStringPoolEntryRef
Definition: Orc.h:103
struct LLVMOrcOpaqueIRTransformLayer * LLVMOrcIRTransformLayerRef
Definition: Orc.h:410
struct LLVMOrcOpaqueJITDylib * LLVMOrcJITDylibRef
Definition: Orc.h:159
struct LLVMOpaqueMemoryBuffer * LLVMMemoryBufferRef
Definition: Types.h:48