2010-11-02 22 views
9

È un po 'soggettivo, ma ho problemi a far funzionare LLVM JIT. Fare jogging su grossi corpi di codice richiede 50 volte più tempo che semplicemente interpretarli anche con la compilazione pigra attivata.LLVM JIT velocizza le scelte?

Quindi mi chiedevo come posso accelerare, che tipo di impostazioni posso usare?

Altri consigli?

risposta

11

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.