2010-11-02 7 views
9

C'est un peu subjectif, mais j'ai du mal à mettre LLVM JIT à jour. Il faut 50 fois plus de temps pour assembler de gros volumes de code que pour les interpréter même si la compilation paresseuse est activée.LLVM JIT accélère les choix?

Alors je me demandais comment je pouvais accélérer, quels types de paramètres je peux utiliser?

D'autres recommandations?

Répondre

11

Je suis désolé de dire que LLVM n'est pas très rapide en tant que compilateur JIT, il vaut mieux en tant que compilateur AOT/statique.

J'ai rencontré les mêmes problèmes de vitesse dans mon projet llvm-lua. Ce que j'ai fait était de désactiver la compilation JIT de grandes fonctions Lua. llvm-lua n'a pas de support de compilation paresseux allumé puisque LLVM requiert trop d'espace de pile C pour fonctionner à partir de Coroutines Lua.

Aussi, si vous utilisez ce dans la fonction principale() de votre programme:

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

Il exposera beaucoup d'options de ligne de commande de LLVM comme « -time-pass » qui permettront le moment de passe LLVM, pour voir quelles parties de la compilation JIT prend le plus de temps.