ISSN: 2165- 7866
Jonice Oliveira
Au cours des trois dernières décennies, un grand nombre de transformations de compilateur visant à optimiser les programmes ont été mises en œuvre. La plupart des optimisations pour les monoprocesseurs réduisent le nombre d'instructions exécutées par le programme à l'aide de transformations basées sur l'analyse des quantités scalaires et des techniques de flux de données. En revanche, les optimisations pour les processeurs superscalaires, vectoriels et parallèles à hautes performances maximisent le parallélisme et la localité de la mémoire avec des transformations qui s'appuient sur le suivi des propriétés des tableaux à l'aide d'une analyse de dépendance de boucle. Cette étude est un aperçu complet des techniques importantes de restructuration de programme de haut niveau pour les langages impératifs tels que C et Fortran. Les transformations pour les architectures séquentielles et les différents types d'architectures parallèles sont traitées en profondeur. Nous décrivons le but de chaque transformation, expliquons comment déterminer si elle est légale et donnons un exemple de son application.