Information Technology Reference
In-Depth Information
PROGRAM Z Z :
INT A; (0) 16
INT B; (4) 16
INT C2;
(8) 16
DEBUT
A = 4;
INIT (0) 16 4
B = A / 2;
DIV (4) 16 (0) 16 2
C2 = B + A;
ADD (8) 16 (4) 16 (0) 16
FIN
STOP
Optimisation du code intermédiaire
L'optimisation de code vise à produire un code machine plus performant, c'est-à-
dire d'une part un code dont l'exécution est plus rapide et d'autre part un code plus
compact dont l'encombrement mémoire est moindre. Diverses améliorations peuvent
être mises en œuvre; elles diffèrent grandement d'un compilateur à l'autre. Les plus
courantes sont :
- la réduction des expressions constantes : elle consiste à effectuer les calculs arith-
métiques qui ne comportent que des opérandes constants et à remplacer l'expression
arithmétique par son résultat. Par exemple, dans le programme Z, l'expression
B
A/2; peut être calculée puisque la valeur de A est connue comme étant égale
à4. B
=
2;
- simplification des boucles et pré-évaluation des expressions constantes : elle consiste
à sortir les expressions invariantes des corps de boucles et à les placer juste devant
ceux-ci. Ainsi, la boucle suivante :
for i = 1 to n
loop
=
A/2; est donc remplacée par B
=
j: = 3;
i: = i + 1;
end loop;
est transformée de la manière suivante :
j: = 3;
for i = 1 to n
loop
i: = i + 1;
end loop;
- simplification des boucles et réduction de puissance des opérateurs : elle consiste
à remplacer au sein d'une boucle une opération puissante et jugée plus coûteuse
telle que la multiplication par une opération plus simple et moins coûteuse telle
que l'addition. Ainsi le code suivant :
for i = 1 to n
loop
i * 5;
end loop;
a
=
Search WWH ::




Custom Search