search for: llvmrunfunction

Displaying 13 results from an estimated 13 matches for "llvmrunfunction".

2016 Jul 11
2
More function signatures for LLVMRunFunction?
Hello, I am new to LLVM, and came across a snag when working through tutorials. With the MC JIT execution engine, LLVMRunFunction only works on "main()"-like functions -- other functions fail with the message "Full-featured argument passing not supported yet!". The workaround recommended by the tutorials is to create a main()-compatible wrapper function and to send in parameters via pointer. Are there pla...
2017 Jan 25
2
mcjit C interface problems
...args[] = {LLVMCreateGenericValueOfInt(LLVMInt32Type(), x, 0), LLVMCreateGenericValueOfInt(LLVMInt32Type(), y, 0)}; printf("args[0]: %d\n", (int)LLVMGenericValueToInt(args[0], 0)); printf("args[1]: %d\n", (int)LLVMGenericValueToInt(args[1], 0)); LLVMGenericValueRef res = LLVMRunFunction(engine, sum, 2, args); printf("result: %d\n", (int)LLVMGenericValueToInt(res, 0)); LLVMDumpModule(mod); // Write out bitcode to file if (LLVMWriteBitcodeToFile(mod, "sum.bc") != 0) { fprintf(stderr, "error writing bitcode to file, skipping\n"); } LLVMDisp...
2016 Jul 15
2
More function signatures for LLVMRunFunction?
Hi Lang, Thanks for the reply. Responses below. As far as I know nobody is actively working on MCJIT any more. I've been > working on the next generation of LLVM JIT APIs (ORC - see > include/llvm/ExecutionEngine/Orc) for a while now, but they don't have > functionality for running arbitrary functions yet. > Thanks for the pointer to ORC -- it looks like the runFunction
2015 Jan 08
2
[LLVMdev] JIT simple module and accessing the value fails
I'm using the llvm-c API and want to use the JIT. I've created the following module ; ModuleID = '_tmp' @a = global i64 5 define i64 @__tempfunc() { entry: %a_val = load i64* @a ret i64 %a_val } This output is generated by LLVMDumpModule just before I call LLVMRunFunction. Which yields a LLVMGenericValueRef. However converting the result to a 64bit integer via LLVMGenericValueToInt(gv, true), it results in 360287970189639680 or something similar - not 5. Converting via LLVMGenericValueToInt(gv, false) didn't help either. How can I use global variables in a...
2016 Aug 10
2
crash JIT with AVX intrinsics
Hi all, I have some old code using the JIT via the LLVM-3.0-C API. I want to upgrade to newer versions of LLVM. As a simple example I wrote a C program that creates the following function and calls it: ; ModuleID = 'round-avx.bc' target triple = "x86_64-pc-linux-gnu" define void @round(<8 x float>*) { _L1: %1 = load <8 x float>* %0 %2 = call <8 x
2012 Apr 25
2
[LLVMdev] Crash in JIT
...ess=0x60c93a2c) frame #0: 0x0000000102e00042 frame #1: 0x00000001015c01fb LLVMPlayGround`llvm::JIT::runFunction(llvm::Function*, std::vector<llvm::GenericValue, std::allocator<llvm::GenericValue> > const&) + 4747 at JIT.cpp:547 frame #2: 0x00000001015a0db2 LLVMPlayGround`LLVMRunFunction + 322 at ExecutionEngineBindings.cpp:195 frame #3: 0x0000000101096125 LLVMPlayGround`main + 741 at main.c:91 frame #4: 0x0000000101095e34 LLVMPlayGround`start + 52 Which looks to be in some non-c code. At least XCode cannot find any corresponding source: 0x102e00042: movl $10, (%rsp) &l...
2012 Apr 25
0
[LLVMdev] Crash in JIT
...ess=0x60c93a2c) frame #0: 0x0000000102e00042 frame #1: 0x00000001015c01fb LLVMPlayGround`llvm::JIT::runFunction(llvm::Function*, std::vector<llvm::GenericValue, std::allocator<llvm::GenericValue> > const&) + 4747 at JIT.cpp:547 frame #2: 0x00000001015a0db2 LLVMPlayGround`LLVMRunFunction + 322 at ExecutionEngineBindings.cpp:195 frame #3: 0x0000000101096125 LLVMPlayGround`main + 741 at main.c:91 frame #4: 0x0000000101095e34 LLVMPlayGround`start + 52 Which looks to be in some non-c code. At least XCode cannot find any corresponding source: 0x102e00042: movl $10, (%rsp) &l...
2010 Aug 12
3
[LLVMdev] LLVM-C: Calling functions contained in other libraries
...engine; LLVMModuleRef module = LLVMModuleCreateWithName("MyModule"); LLVMValueRef toCall = d(module); LLVMDumpModule(module); LLVMLinkInInterpreter(); LLVMCreateInterpreterForModule(&engine, module, &error); LLVMGenericValueRef result = LLVMRunFunction(engine, toCall, 0, NULL); LLVMDisposeModule(module); [pool drain]; return 0; } Thank you, Filip -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100812/388c33da/attachment.html>
2017 Jan 26
2
mcjit C interface problems
...> > > LLVMCreateGenericValueOfInt(LLVMInt32Type(), y, 0)}; > > > > printf("args[0]: %d\n", (int)LLVMGenericValueToInt(args[0], 0)); > > printf("args[1]: %d\n", (int)LLVMGenericValueToInt(args[1], 0)); > > > > LLVMGenericValueRef res = LLVMRunFunction(engine, sum, 2, args); > > > > printf("result: %d\n", (int)LLVMGenericValueToInt(res, 0)); > > > It seems to fail to add, and always returns the first argument. > > Any help greatly appreciated. > > I don't think LLVMGenericValueToInt / LLVMRunFuncti...
2009 Dec 24
0
[LLVMdev] Running functions built with the LLVM C API
...opriate type, and then call it. There isn’t a tutorial using the LLVM C API that I’ve seen, so I’ve been working with bits and pieces found online, and of course the header files. I haven’t been able to find an equivalent to getPointerToFunction as yet, however. The JIT example I found[1] is using LLVMRunFunction, with requisite boxing of arguments and unboxing of return value. Is this the recommended route? Is the C API just lacking a getPointerToFunction equivalent? If so, I imagine it will be fairly straightforward to add one, which I’ll be happy to do. Thanks very much, Rob [1]: http://npcontemplatio...
2010 Aug 12
0
[LLVMdev] LLVM-C: Calling functions contained in other libraries
On Aug 12, 2010, at 10:43 AM, F van der Meeren wrote: > Where am I going wrong here? > Did you link against the library that contains the function? -eric
2010 Oct 25
0
[LLVMdev] Ocaml bindings for execution engines
...tionEngineRef EE) { unsigned NumArgs; LLVMGenericValueRef Result, *GVArgs; unsigned I; NumArgs = Wosize_val(Args); GVArgs = (LLVMGenericValueRef*) malloc(NumArgs * sizeof(LLVMGenericValueRef)); for (I = 0; I != NumArgs; ++I) GVArgs[I] = Genericvalue_val(Field(Args, I)); Result = LLVMRunFunction(EE, F, NumArgs, GVArgs); free(GVArgs); return alloc_generic_value(Result); } I noticed that the Args parameter has not been protected by CAMLparam with CAMLreturn. Is this safe in this case, because we allocated a GVArgs? The other bindings files, sometimes, also ignore CAMLparam and CAMLretu...
2009 Nov 05
2
[LLVMdev] Strange error for libLLVMCore.a
...ference to `LLVMRunPassManager' c:\Work\llvm//fac.c:77: undefined reference to `LLVMDumpModule' c:\Work\llvm//fac.c:79: undefined reference to `LLVMInt32Type' c:\Work\llvm//fac.c:79: undefined reference to `LLVMCreateGenericValueOfInt' c:\Work\llvm//fac.c:80: undefined reference to `LLVMRunFunction' c:\Work\llvm//fac.c:83: undefined reference to `LLVMGenericValueToInt' c:\Work\llvm//fac.c:85: undefined reference to `LLVMDisposePassManager' c:\Work\llvm//fac.c:86: undefined reference to `LLVMDisposeBuilder' c:\Work\llvm//fac.c:87: undefined reference to `LLVMDisposeExecutionEng...