Je pense que les choses intéressantes sont les choses qu'un compilateur conventionnel ne peut pas faire contrairement au JIT. Inlining méthodes, éliminant le code mort, CSE, analyse en direct, etc.Tout est fait par votre compilateur C++ moyen, rien de "spécial" ici
Mais optimiser quelque chose en se basant sur des hypothèses optimistes et ensuite les désoptimiser plus tard s'ils s'avèrent faux? (en supposant un type spécifique, en supprimant les branches qui échoueront plus tard si ce n'est pas fait, ..) Enlever les appels virtuels si on peut garantir qu'il n'existe qu'une seule classe en ce moment (encore quelque chose qui fonctionne de façon fiable avec la désoptimisation)? L'optimisation adaptative est, je pense, la seule chose qui distingue vraiment le JIT de votre compilateur C++. Peut-être aussi mentionner le profilage d'exécution effectué par le JIT pour analyser quelles optimisations il devrait appliquer (ce n'est plus aussi unique avec toutes les optimisations guidées par le profil).
Un grand! Merci et +1. – alf
Semble être mort, essayez http://www.complang.tuwien.ac.at/andi/ACACES06.pdf – user60561