En général on ajoute pas du code inutile juste pour le fun => Et ben dans ce cas suppose simplement que le code est dans une librairie... (Oui bon, j'aurai carrément du mettre ça dans l'exemple)
En C t'aura absolument aucune optimisation, et en langage de plus haut niveau genre Java ou C#, et bien tu aurai (toujours dans le cas où le JIT serait un peu plus évolué que ceux qui existent actuellement) toujours les optimisations
Par exemple, pour une librairie que tu n'aurais pas codée toi même, et dont tu appellerais une fonction avec un ou plusieurs des paramètres étant toujours à la même valeur, tu pourrais faire une optimisation (enfin là c'est un peu trop poussé pour faire du JIT) exactement du même type mais qui pourrait se révéler très avantageuse pour le programme... Bref c'est exactement la même chose sur le principe de base, mais dans certains cas ça peut modifier bien plus le programme que l'exemple tout con que j'ai donné

Bon, mais flemme de trouver un exemple là...
Sinon on peut aussi penser à de la réoptimisation dynamique dans le cas d'utilisations de pointeurs de fonctions ou assimilés (delégués en C#, interfaces/classes dérivées en C#/Java), par exemple une classe qui prendrait un callback (pas un event multicast comme en C#...), donc un truc intrinsèquement lent du fait des méthodes virtuelles, pour ses opérations... Si on le jugeait nécéssaire, il serait possible de recompiler le code a chaque changement de ce callbak, afin d'avoir toujours des appels optimisés. Bien sûr ça demande une analyse assez poussée du code, donc impossible a aire avec les JIT actuels, mais il y a toujours moyen d'améliorer (*profiler* hem)
y n'agit pas sur Object, var v1 = Object.FunctionA(toto);
Display(v1);
Object.FunctionB();
var v2 = Object.FunctionA(toto);
Display(v2);
Sinon quand tu parles d'analyse des dépendances entre insructions, c'est genre vérifier si, en supposant que Displav);
Display(v);
est équivalent àvar v = Object.FunctionA(toto);
Object.FunctionB();
Display(
c'est ça ? En tout cas c'est pas la première chose qui me vien a l'esprit, mais c'est clair que c'est intéressant niveau optimisation,
Et ça montre bien que les possibilités d'optimisations sont bien plus nombreuses qu'en C (enfin surtout que l'optimiseur fait le boulot à notre place... Mais bon c'est aussi un peu le principe à la base :d)
Quoique certaines optimisations de ce type doivent se retrouver dans le compilateur Visual C++ avec ses Global Optimizations
