next up previous
Next: Découpage en instructions Up: 2.2.3 Les différentes étapes Previous: Normalisation

Factorisation


Une fois normalisée, l'expression arithmétique doit être mise en forme (que ce soit pour rechercher une opération de type "multiply-add" ou pour extraire une ou plusieurs sous-parties invariantes par rapport aux indices de boucles). Il est donc nécessaire de "factoriser" les expressions selon certains critères (par exemple essayer d'obtenir des sous-expressions indépendantes des indices les plus internes - figure 7). Le critère que nous avons choisi dans un premier temps est la minimisation du nombre d'opérations d'un point de vue global ( peut être considéré comme une opération "multiply-add"). Cependant, nous pourrions (devrions ?) envisager de tenir compte simultanément d'autres critères tels que le nombre de registres utiles, ou encore la profondeur du chemin critique.

  
Figure 7: Critères de factorisation.

Plusieurs problèmes apparaissent à ce niveau :

  
Figure 8: Exemple de factorisations.

Factoriser une expression permet de diminuer le nombre d'opérations nécessaires pour son évaluation à deux niveaux :

Remarques: Les valeurs données sur l'exemple 9 tiennent compte des déplacements de sous-expressions invariantes, mais les déréférencements et calculs d'adresses ne sont pas pris en compte pour simplifier.

  
Figure 9: Nombre d'opérations.



next up previous
Next: Découpage en instructions Up: 2.2.3 Les différentes étapes Previous: Normalisation



Julien Zory
Thu Mar 12 17:35:23 MET 1998