Optimisations du code généré
============================

Quelques optimisations possibles…

Limiter le nombre de variables locales crétines

En particulier, la phase de mise en Anfix peut introduire de nombres
variables intermédiaires utilisées une unique fois. Certaines sont
utiles pour le passage en continuation, mais pas toutes.

Limiter le nombre de fonctions et de sauts

Optimisations par le petit bout de la lorgnette

En anglais on parle de peephole optimisations. C’est l’idée d’essayer
d’améliorer localement le code, en regadant juste quelques instructions,
sans beaucoup d’informations sur l’état de la machine quand elle arrivera
ici. Exemple:

Limiter le nombre de mise en boîte (boxing/unboxing)

Au delà des cas très favorables où unbox;box ou box;unbox se suivent,
on peut aller plus loin dans l’analyse des variables (par typage), et décider
par exemple de réserver les premières variables de la JVM (p.ex. v0..v3)
pour des données dont on a pu prouver qu’elles seront entières, et donc
ne pas les boxer.