def main (*args, **kws): m = llvm_module_from_c_source(TEST_SRC) print m ee = llvm.ee.ExecutionEngine.new(m) init_fn = m.get_function_named('initdemoext') ee.run_function(init_fn, []) demoext = sys.modules['demoext'] assert demoext.demofn() == 42L
def py_module_from_c_source (module_name, c_source, *args): global __dyngen_modules__ c_source_hash = hash(c_source) if c_source_hash in __dyngen_modules__: ret_val = __dyngen_modules__[-1] else: llvm_module = llvm_module_from_c_source(c_source, *args) init_fn = llvm_module.get_function_named('init' + module_name) ee = llvm.ee.ExecutionEngine.new(llvm_module) ee.run_function(init_fn, []) ret_val = sys.modules[module_name] __dyngen_modules__[c_source_hash] = (llvm_module, ee, ret_val) return ret_val
def debug_in_gdb(lfunc): # Create an execution engine object. This will create a JIT compiler # on platforms that support it, or an interpreter otherwise. module = lfunc.module ee = llvm.ee.ExecutionEngine.new(module) float_type = lfunc.args[0].type # The arguments needs to be passed as "GenericValue" objects. arg1_value = 5.0 arg1 = llvm.ee.GenericValue.real(float_type, arg1_value) # Now let's compile and run! retval = ee.run_function(lfunc, [arg1]) print(retval.as_real(float_type))
def debug_in_gdb(lfunc): # Create an execution engine object. This will create a JIT compiler # on platforms that support it, or an interpreter otherwise. module = lfunc.module ee = llvm.ee.ExecutionEngine.new(module) float_type = lfunc.args[0].type # The arguments needs to be passed as "GenericValue" objects. arg1_value = 5.0 arg1 = llvm.ee.GenericValue.real(float_type, arg1_value) # Now let's compile and run! retval = ee.run_function(lfunc, [arg1]) print(retval.as_real(float_type))
def execute(module, llvmfunc): ee = llvm.ee.ExecutionEngine.new(module) retval = ee.run_function(llvmfunc, []) print >> sys.stderr, "retval is %s" % retval.as_int() return retval
def execute(module, llvmfunc): ee = llvm.ee.ExecutionEngine.new(module) retval = ee.run_function(llvmfunc, []) print >> sys.stderr, "retval is %s" % retval.as_int() return retval