[LLVMdev] Exception handling question
Duncan Sands
baldrick at free.fr
Fri Jan 22 06:42:52 PST 2010
Hi James,
> want to send us your testcase code? Then we can give it a whirl.
>
>
> Test code is at http://giantblob.com/ehtest.tar.gz
>
> Thanks for the help. I apologize in advance if it turns out I'm doing
> something stupid!
I hope you realise that by running llvm-ld without -native you are actually
executing your program from the JIT. I did a native compilation as follows:
used llvm-link to link all of the bitcode into "total.bc"; ran llc on total.bc,
producing "total.s"; did "g++ -o total total.s"; ran ./total. It seems to work:
$ ./total
__l_personality called$
Of course it is probably supposed to work from the JIT too (I don't know
anything about the JIT), but it clearly doesn't: when I tried I got:
lli: lib/ExecutionEngine/JIT/JIT.cpp:624: void
llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, const llvm::MutexGuard&):
Assertion `!isAlreadyCodeGenerating && "Error: Recursive compilation detected!"'
failed.
...
6 lli 0x0000000000d3f5e2
llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, llvm::MutexGuard const&) + 62
7 lli 0x0000000000d3f9c6 llvm::JIT::getPointerToFunction(llvm::Function*)
+ 686
8 lli 0x0000000000d67c86
llvm::ExecutionEngine::getPointerToGlobal(llvm::GlobalValue const*) + 70
9 lli 0x0000000000d62805
llvm::JITDwarfEmitter::EmitCommonEHFrame(llvm::Function const*) const + 613
10 lli 0x0000000000d60ac3
llvm::JITDwarfEmitter::EmitDwarfTable(llvm::MachineFunction&,
llvm::JITCodeEmitter&, unsigned char*, unsigned char*, unsigned char*&) + 335
...
Ciao,
Duncan.
More information about the llvm-dev
mailing list