[LLVMdev] JIT "Error: Recursive compilation detected!" when lazily compiling one function at a time

Gregory Petrosyan gregory.petrosyan at gmail.com
Sat Jun 5 14:31:02 PDT 2010


Hello,

As the title line says, I'm getting assertions on recursive JIT
compiation, like this:

opt: JIT.cpp:627: void
llvm::JIT::runJITOnFunctionUnlocked(llvm::Function*, const
llvm::MutexGuard&): Assertion `!isAlreadyCodeGenerating && "Error:
Recursive compilation detected!"' failed.
0  libLLVM-2.7.so 0x012eb2c8
Stack dump:
0.	Program arguments: opt
-load=/home/gregory/thesis/llvm/Release/lib/LLVMmergebb.so -mergebb
-stats bullet.linked.bc -o bullet.linked.bc.opt
1.	Running pass 'Merge similar basic blocks' on module 'bullet.linked.bc'.
2.	Running pass 'X86 Machine Code Emitter' on function
'@_ZN35btSequentialImpulseConstraintSolver28solveGroupCacheFriendlySetupEPP17btCollisionObjectiPP20btPersistentManifoldiPP17btTypedConstraintiRK19btContactSolverInfoP12btIDebugDrawP12btStackAlloc'

This is very strange, since I am compiling in one thread, one function
at a time, and using lazy JIT compilation. To me, that sound like
recursive JIT compilation should be impossible, but, nevertheless,
this assertion triggers!

Can anybody please help me with it?

                Gregory



More information about the llvm-dev mailing list