Mi dispiace dire che LLVM non è molto veloce come compilatore JIT, è meglio come compilatore AOT/statico.
Ho riscontrato gli stessi problemi di velocità nel mio progetto llvm-lua. Quello che ho fatto è stato disabilitare la compilazione JIT di grandi funzioni Lua. llvm-lua non ha il supporto lazy-compilation attivato poiché LLVM richiede troppo spazio C-stack per essere eseguito da coroutine di Lua.
Anche se si utilizza questa funzione principale del programma():
llvm::cl::ParseCommandLineOptions(argc, argv, 0, true);
esporrà un sacco di opzioni della riga di comando da LLVM come '-time-pass' che permetterà tempi di LLVM passa, per vedere quali parti della compilazione JIT impiegano più tempo.