[LLVMdev] Interpreter with multiple modules.

Garrison Venn gvenn.cfe.dev at gmail.com
Wed Feb 3 06:13:36 PST 2010

I have not used the C api or the interpreter, but via JIT one can use
ExecutionEngine::addGlobalMapping(...) after the function decl in the
foreign module. See if there is an equivalent in the C API, which will
probably work for the interpreter given that this method is declared in 
ExecutionEngine. Also search for a previous email thread in this list.
This discussion was fairly recent, and I believe I responded to it.

Hope this helps


On Feb 3, 2010, at 8:53, Thomas W. wrote:

> Hi everybody,
> I'm currently working with LLVM (v 2.6) and I try to interpret LLVM bitcode
> using the c API. Here is my problem : I have two LLVMModuleRef, M1 and M2,
> M1 contains the function "funct()" and M2 contains a main function which
> call "funct()" (M2 declares "funct()" too but it doesn't define it). If I
> try to run the main function, I got the error "LLVM ERROR: Tried to execute
> unknown external function: ...".
> I build the interpreter giving it M1 and then I add M2. I can use the
> LLVMFindFunction(...) to get the functions "funct()" and "main()" and if I
> apply LLVMIsDeclaration(...) to these LLVMValueRef, I got false (so the
> interpreter should know the two functions are defined and it should be able
> to find their code).
> Is there something to do to enable the interpreter to find a function in
> another module ? I saw there is something like LLVMLinker::LinkModules(...)
> in c++ but I didn't find the c version of this function.
> Thanks in advance for your help,
> Thomas.
> -- 
> View this message in context: http://old.nabble.com/Interpreter-with-multiple-modules.-tp27433312p27433312.html
> Sent from the LLVM - Dev mailing list archive at Nabble.com.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list