JIT

LLVM-based JIT compilation facilities.

Classes

Name Description
JITModule Mutable LLVM module tracked by the JIT context.
JITContext Global JIT state for one runtime session.

Typedefs

Return Name Description
void void_func
struct JITModule JITModule
struct JITContext JITContext

void_func

void void_func()

JITModule

struct JITModule JITModule()

JITContext

struct JITContext JITContext()

Functions

Return Name Description
void jit_init Initializes a JIT context and ORC engine.
void jit_free Releases all JIT resources.
void jit_add_dummy_functions Adds temporary/demo functions to current mutable module.
void jit_bake Finalizes and submits current module to the JIT.
void_func * jit_lookup_function Resolves a JIT function by symbol name.
void jit_verify_module_mutable static
void jit_error_report ORC error callback used by execution session.
void jit_init Initializes a JIT context and ORC engine.
void jit_add_dummy_functions Adds temporary/demo functions to current mutable module.
void jit_bake Finalizes and submits current module to the JIT.
void_func * jit_lookup_function Resolves a JIT function by symbol name.
void jit_free Releases all JIT resources.

jit_init

void jit_init(JITContext * ctx)

Initializes a JIT context and ORC engine.

Initializes a JIT context and ORC engine.

Initializes a JIT context and ORC engine.

Initializes a JIT context and ORC engine.


jit_free

void jit_free(JITContext * ctx)

Releases all JIT resources.

Releases all JIT resources.

Releases all JIT resources.

Releases all JIT resources.


jit_add_dummy_functions

void jit_add_dummy_functions(JITContext * ctx)

Adds temporary/demo functions to current mutable module.

Adds temporary/demo functions to current mutable module.

Adds temporary/demo functions to current mutable module.

Adds temporary/demo functions to current mutable module.


jit_bake

void jit_bake(JITContext * ctx)

Finalizes and submits current module to the JIT.

Finalizes and submits current module to the JIT.

Finalizes and submits current module to the JIT.

Finalizes and submits current module to the JIT.


jit_lookup_function

void_func * jit_lookup_function(JITContext * ctx, char * function_name)

Resolves a JIT function by symbol name.

Resolves a JIT function by symbol name.

Resolves a JIT function by symbol name.

Resolves a JIT function by symbol name.


jit_verify_module_mutable

static

static void jit_verify_module_mutable(JITContext * ctx)

jit_error_report

void jit_error_report(void * ctx, LLVMErrorRef err)

ORC error callback used by execution session.

Parameters

  • ctx User callback context (unused).

  • err LLVM error object.


jit_init

void jit_init(JITContext * ctx)

Initializes a JIT context and ORC engine.

Initializes a JIT context and ORC engine.

Initializes a JIT context and ORC engine.

Initializes a JIT context and ORC engine.


jit_add_dummy_functions

void jit_add_dummy_functions(JITContext * ctx)

Adds temporary/demo functions to current mutable module.

Adds temporary/demo functions to current mutable module.

Adds temporary/demo functions to current mutable module.

Adds temporary/demo functions to current mutable module.


jit_bake

void jit_bake(JITContext * ctx)

Finalizes and submits current module to the JIT.

Finalizes and submits current module to the JIT.

Finalizes and submits current module to the JIT.

Finalizes and submits current module to the JIT.


jit_lookup_function

void_func * jit_lookup_function(JITContext * ctx, char * function_name)

Resolves a JIT function by symbol name.

Resolves a JIT function by symbol name.

Resolves a JIT function by symbol name.

Resolves a JIT function by symbol name.


jit_free

void jit_free(JITContext * ctx)

Releases all JIT resources.

Releases all JIT resources.

Releases all JIT resources.

Releases all JIT resources.

JITModule

#include <jit.h>

Mutable LLVM module tracked by the JIT context.

Public Attributes

Return Name Description
LLVMModuleRef handle Raw LLVM module handle.
LLVMOrcThreadSafeModuleRef threadsafe_handle Thread-safe wrapped module handle for ORC submission.

handle

LLVMModuleRef handle

Raw LLVM module handle.


threadsafe_handle

LLVMOrcThreadSafeModuleRef threadsafe_handle

Thread-safe wrapped module handle for ORC submission.

JITContext

#include <jit.h>

Global JIT state for one runtime session.

Public Attributes

Return Name Description
LLVMContextRef ctx Underlying LLVM context.
LLVMOrcLLJITRef jit ORC LLJIT engine handle.
LLVMOrcJITDylibRef jit_dylib Main JIT dynamic library.
LLVMOrcThreadSafeContextRef orc_threadsafe_ctx Thread-safe wrapper around ctx.
int created_module_count Number of created modules for unique module naming.
JITModule current_module Most recent mutable module.
bool should_create_module Set when a new mutable module is required.

ctx

LLVMContextRef ctx

Underlying LLVM context.


jit

LLVMOrcLLJITRef jit

ORC LLJIT engine handle.


jit_dylib

LLVMOrcJITDylibRef jit_dylib

Main JIT dynamic library.


orc_threadsafe_ctx

LLVMOrcThreadSafeContextRef orc_threadsafe_ctx

Thread-safe wrapper around ctx.


created_module_count

int created_module_count

Number of created modules for unique module naming.


current_module

JITModule current_module

Most recent mutable module.


should_create_module

bool should_create_module

Set when a new mutable module is required.