Displaying 20 results from an estimated 7000 matches similar to: "[LLVMdev] how to runFunction? passing in an int"
2010 Aug 18
0
[LLVMdev] clang: call extern function using JIT
Can someone pease tell me what I am doing wrong?
Im trying to register an external function with the JIT, so can call
functions in my music
application.
Here my function
int Execute(llvm::Module *Mod, char * const *envp) {
llvm::InitializeNativeTarget();
std::string Error;
llvm::OwningPtr<llvm::ExecutionEngine> EE(
llvm::ExecutionEngine::createJIT(Mod, &Error));
if (!EE) {
2010 Aug 18
1
[LLVMdev] clang: call extern function using JIT
Heres my full code listing, im totally stuck.
// Whistle.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "clang/CodeGen/CodeGenAction.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Tool.h"
#include
2010 Aug 18
1
[LLVMdev] clang: call extern function using JIT
Im trying to call fuctions in my music application from c code which will be
used by the JIT.
Here my function, i have made no other changes to the clang interpreter
example. Can you see anything else I have to add to either the fuction below
or to the c code to be JIT at the bottom?
// function I wish to call.
int yipee(int aVar)
{
aVar = 5;
}
int Execute(llvm::Module *Mod, char * const
2008 Nov 15
1
[LLVMdev] How to use EE->runFunction for a function with StructRet set?
Hi,
I'm using LLVM 2.4 (but llvm-gcc 2.2) on Ubuntu 8.10 (Intrepid Ibex) for
a small part-time project combining Witty (http://www.webtoolkit.eu) and
the ExecutionEngine in LLVM. (This is my second week with any of these
so I still lack a lot of basic knowledge.)
Sometimes I want to call a function returing a struct (in this case
std::string), thus hasStructRetAttr() is true for the Function
2010 Aug 17
4
[LLVMdev] clang: call extern function using JIT
hi, im creating a music application(image below).
At the moment im using tcc compiler but im moving across to clang because of
the improved compiler warnings.
Can anyone please explain and show code so I can use clang's JIT to call
functions in my application?
Thanks.
http://old.nabble.com/file/p29449300/51709341.jpeg
--
View this message in context:
2010 Aug 18
2
[LLVMdev] clang: call extern function using JIT
gafferuk <gafferuk at gmail.com> writes:
> Im confused. The function i wish to call is a return type of int.
> Im calling it with int dd = yipee(1);
>
> What's wrong?
Declare the function:
int yipee(int);
int main()
{
int dd = yipee(1);
return 0;
}
If that still crashes, put a breakpoint on `yipee' and see if the
execution gets there, if the argument is
2010 Aug 18
0
[LLVMdev] clang: call extern function using JIT
I tried what you said, now I get:
LLVM ERROR: Program used external function 'yipee' which could not be
resolved!
Stack dump:
0. Running pass 'X86 Machine Code Emitter' on function '@main'
did not even get as far as a breakpoint.
Óscar Fuentes wrote:
>
> gafferuk <gafferuk at gmail.com> writes:
>
>> Im confused. The function i wish to call is
2010 Mar 18
0
[LLVMdev] JIT : Does it cache the compiled code of executed functions upon runFunction(..)?
Hi Gabi,
I have no idea why your performances is not as expected with such low level
of informations.
But, I know that the binary code is cached by the JIT. You can find the code
in JIT.cpp to convince yourself :
runFunction -> getPointerToFunction ->getPointerToGlobalIfAvailable which
returns the native address of the jitted function.
You can even try to measure time needed by each
2007 Jun 10
0
[LLVMdev] How to call native functions from bytecode run in JIT?
Are you able make calls to well known external functions such as
printf? As far as I known, this capability is well tested on x86 /
Linux.
I am wondering if there is some name mangling issue?
Evan
On Jun 7, 2007, at 8:38 AM, Jan Rehders wrote:
> Hello,
>
> can anyone help me calling native functions from LLVM-Bytecode
> functions run in the JIT?
>
> I have a program
2007 Jun 07
2
[LLVMdev] How to call native functions from bytecode run in JIT?
Hello,
can anyone help me calling native functions from LLVM-Bytecode
functions run in the JIT?
I have a program which creates an LLVM execution engine and adds
modules and functions
to it on the fly. I need to call some native functions of my program
from bytecode functions which causes some troubles as it appears not
to be documented. My test scenario works like the following:
I have
2013 Oct 03
0
[LLVMdev] libclang JIT frontend
Hi,
I'm not sure if this is a libclang, llvm::cl or clang-interpreter issue so I'll try posting here for a response.
I am using libclang as a frontend to the LLVM JIT (3.3 release). I started from the clang-interpreter example and have everything working (given a C/C++ source file I can have it JIT'd to memory and executed) for a single run. When I try to compile a second source
2010 Mar 19
0
[LLVMdev] JIT : Does it cache the compiled code of executed functions upon runFunction(..)?
Probably because the integer version of the prototype is
special-cased. The problem is that the JIT has a C function pointer
of an arbitrary type that it only finds out about at runtime.
Normally, if you call a function pointer with a known type, your
compiler will generate the proper calling code and allocate the
arguments in registers or on the stack. However, doing that inside
the JIT would
2010 Aug 17
0
[LLVMdev] clang: call extern function using JIT
On Aug 17, 2010, at 1:56 PM, gafferuk wrote:
>
> hi, im creating a music application(image below).
>
> At the moment im using tcc compiler but im moving across to clang because of
> the improved compiler warnings.
> Can anyone please explain and show code so I can use clang's JIT to call
> functions in my application?
You'll probably want to take a look at the
2012 Nov 04
0
[LLVMdev] trying to understand linkage with linker
If I create a function in a module with:
auto f = module->getOrInsertFunction( "eval_expr", ...)
//create function
Then later I link this with other modules:
Linker link;
link.LinkInModule( base_module );
link.LinkInModule( module );
Then I create an execution engine something like:
auto ee = EngineBuilder( link.getModule() )...create();
If I attempt to run the function
2013 Nov 08
0
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
Something must be wrong with the Function Type. Try to debug into
runFunction to see which if condition fails.
Just a guess, if this is on 64 bit system the first argument type may be
int64 but needs to be int32.
Yaron
2013/11/8 edA-qa mort-ora-y <eda-qa at disemia.com>
> That makes it more mysterious then since I am indeed only calling a main
> function. Perhaps I have to invoke
2010 Mar 18
2
[LLVMdev] JIT : Does it cache the compiled code of executed functions upon runFunction(..)?
Hello
I have the following scenario, and I am not sure why the performance
is so bad (take 30 minutes to complete with very simple generated
functions):
1. Create module
2. Do something like EE =
EngineBuilder(theModule).setEngineKind(EngineKind::JIT).create();
3. Create a function in the module: theModule->getOrInsertFunction(..)
4. Execute 1000 times the function using
2010 Mar 19
2
[LLVMdev] JIT : Does it cache the compiled code of executed functions upon runFunction(..)?
Reid,
Thanks! You were right!
Changing the code to:
float (*theF)(float) = (float (*)(float)) EE -> getPointerToFunction(f);
float retVal = theF(arg1);
made the difference. Now it is dozens of times faster!
I don't really understand the cause though..
Why doesn't ExecutionEngine cope well with "define float
@someFunc(float %x)" and needs this trick ? (but copes well with
2013 Mar 20
0
[LLVMdev] Problems with parallelizing lli
Hi,
I am trying to parallize the lli interpreter (code: http://pastebin.com/6iuHNH3Q). I am using ubuntu 12.04 with llvm
version 3.1. Each thread uses a seperate LLVMContext, however the
interpreter continues to crash.
Error msg: ..../include/llvm/Support/Mutex.h:116:
bool llvm::sys::SmartMutex<true>::release(): Assertion `((recursive &&
acquired) || (acquired == 1)) &&
2013 Nov 08
1
[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!
It was the return type which was i64. I changed it also to my
abi_int_size and it works now. I have to take care of a few other type
translations, but it looks like MCJIT is working now.
Thank you.
On 08/11/13 18:12, Yaron Keren wrote:
> Something must be wrong with the Function Type. Try to debug into
> runFunction to see which if condition fails.
> Just a guess, if this is on 64
2011 Nov 25
2
[LLVMdev] JIT: Inlining introduces intrinsics.
On 11/24/2011 05:52 PM, Óscar Fuentes wrote:
> Óscar Fuentes<ofv at wanadoo.es> writes:
>
>>>> If I activate the Inliner pass:
>>>>
>>>> Builder.Inliner = createFunctionInliningPass(Threshold);
>>>>
>>>> this is the result:
>>>>
>>>> LLVM ERROR: Program used external function