[LLVMdev] Using argument in another module
ChiaLun
h3355626 at msn.com
Tue Dec 25 21:15:48 PST 2012
Hi everyone,
I am building a function that would call a function in another module,
I found this related thread
http://llvm.1065342.n5.nabble.com/Using-a-function-from-another-module-td10506.html
All my functions have prototype
int f(myStruct * c);
here comes my problems
If I have Function* f1,*f2
f2 is in another module, f1 is the function I am building.
Somewhere in f1 , I set
builder.CreateCall(f2,f1->arg_begin()); // builder is
IRBuilder, its context is the same as f1
When I run my program, I get
llvm/lib/VMCore/Instructions.cpp:274: void
llvm::CallInst::init(llvm::Value*, llvm::ArrayRef<llvm::Value*>, const
llvm::Twine&): Assertion `(i >= FTy->getNumParams() || FTy->getParamType(i)
== Args[i]->getType()) && "Calling a function with a bad signature!"'
failed.
I found another thread having the same problem
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-July/052083.html
It says that the problem results from parameter in different context.
In that thread, it's still unsolved.
The reason I have this problem is that I am using many threads to create and
build LLVM functions, each thread
has its own LLVMContext, and they may execute functions built by other
threads.
Does anyone have idea on how to solve that ?
Have A Nice Day
Chia Lun Liu
--
View this message in context: http://llvm.1065342.n5.nabble.com/Using-argument-in-another-module-tp52849.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
More information about the llvm-dev
mailing list