30 lines
657 B
Python
30 lines
657 B
Python
from llvmlite.binding import ffi
|
|
|
|
|
|
def create_context():
|
|
return ContextRef(ffi.lib.LLVMPY_ContextCreate())
|
|
|
|
|
|
def get_global_context():
|
|
return GlobalContextRef(ffi.lib.LLVMPY_GetGlobalContext())
|
|
|
|
|
|
class ContextRef(ffi.ObjectRef):
|
|
def __init__(self, context_ptr):
|
|
super(ContextRef, self).__init__(context_ptr)
|
|
|
|
def _dispose(self):
|
|
ffi.lib.LLVMPY_ContextDispose(self)
|
|
|
|
|
|
class GlobalContextRef(ContextRef):
|
|
def _dispose(self):
|
|
pass
|
|
|
|
|
|
ffi.lib.LLVMPY_GetGlobalContext.restype = ffi.LLVMContextRef
|
|
|
|
ffi.lib.LLVMPY_ContextCreate.restype = ffi.LLVMContextRef
|
|
|
|
ffi.lib.LLVMPY_ContextDispose.argtypes = [ffi.LLVMContextRef]
|