2010-11-02 12 views
9

Es un poco subjetivo, pero estoy teniendo problemas para poner LLVM JIT al día. Jing grandes cuerpos de código toman 50 veces más tiempo que simplemente interpretarlos incluso con la compilación perezosa activada.LLVM JIT acelera las opciones?

Así que me preguntaba cómo puedo acelerar el ajuste, ¿qué tipo de configuración puedo usar?

¿Alguna otra recomendación?

Respuesta

11

Lamento decir que LLVM simplemente no es muy rápido como un compilador JIT, es mejor como un compilador AOT/estático.

Me he encontrado con los mismos problemas de velocidad en mi proyecto llvm-lua. Lo que hice fue deshabilitar la compilación JIT de grandes funciones de Lua. llvm-lua no tiene activado el soporte de compilación diferida ya que LLVM requiere demasiado espacio de C-stack para ejecutarse desde corutinas de Lua.

Además, si utiliza esta función principal de su programa():

llvm::cl::ParseCommandLineOptions(argc, argv, 0, true); 

expondrá una gran cantidad de opciones de línea de comandos de LLVM como '-time-pass' que permitan la sincronización de LLVM pasa, para ver qué partes de la compilación de JIT toman más tiempo.

Cuestiones relacionadas