8
votes

JIT compilateurs pour maths

Je recherche un compilateur JIT ou une petite bibliothèque de compilation pouvant être intégrée à mon programme. Je tire à l'utiliser pour compiler un code généré de manière dynamique qui effectue des arithmétiques numériques complexes. Le code généré est très simple dans la structure: pas de boucles, pas de conditionnels, mais ils peuvent être assez longs (quelques MB lorsqu'ils sont compilés par GCC). Les performances du code de machine résultant sont importantes, alors que je ne me soucie pas vraiment de la vitesse de compilation elle-même. Quel compilateur JIT est le meilleur pour mon objectif? Merci!

Exigences détaillées

  • Support Double précision Numéro complexe Arithmetics
  • Supporte l'optimisation de base
  • Supporte de nombreux processeurs (x86 et x86-64 au moins)
  • Utilisez l'ESS sur les CPU pris en charge
  • Stack Stack ou un grand ensemble de registres pour variables locales
  • Interface ANSI-C ou C ++
  • Plate-forme transversale (principalement Linux, Unix)
jit

0 commentaires

3 Réponses :


0
votes

On dirait que vous souhaitez pouvoir compiler à la volée, puis chargez de manière dynamique la bibliothèque compilée (.dll ou .so). Cela vous donnerait la meilleure performance, avec une interface ANSI-C ou C ++. Alors, oubliez le jiting et envisager de frayer un compilateur C / C ++ pour faire la compilation.

Cela suppose bien sûr qu'un compilateur peut être installé au point où le code généré de manière dynamique est réellement généré.


1 commentaires

C'est bien ce que je fais maintenant. Le compilateur GCC ou Intel C est utilisé pour compiler le code et le fichier .SO résultant est chargé de manière dynamique. Le problème, cependant, est que je trouve difficile à emballer un compilateur à part entière dans mon programme. Des problèmes de licence de côté, juste la partie technique peut être trop de travail.



6
votes

Vous voudrez peut-être jeter un coup d'œil à llvm .


0 commentaires

2
votes