Skip to content

C type context

c_type_context

register_llvm_ctypes(ctx: CTypeContext) -> None

Source code in xdsl/jit/llvm/c_type_context.py
 8
 9
10
def register_llvm_ctypes(ctx: CTypeContext) -> None:
    ctx.register_ctype(LLVMPointerType, lambda _: ctypes.c_void_p)
    ctx.register_ctype(LLVMVoidType, lambda _: None)

to_c_func_type(ctx: CTypeContext, func_type: LLVMFunctionType)

Build a ctypes function type from an LLVM function type.

Source code in xdsl/jit/llvm/c_type_context.py
13
14
15
16
17
def to_c_func_type(ctx: CTypeContext, func_type: LLVMFunctionType):
    """Build a ctypes function type from an LLVM function type."""
    if func_type.is_variadic:
        raise JITException(f"No ctypes mapping for variadic function type: {func_type}")
    return ctx.to_c_func_type(func_type.inputs, func_type.output)