Les processeurs Itanium
X
Les instructions de décalage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Les instructions de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Les instructions de branchement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Les instructions d’accès mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Le format des instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Les techniques avancées pour la spéculation dans l’Itanium . . . . . . . . . 44
La spéculation de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Les branchements par le mécanisme de prédicat . . . . . . . . . . . . . . . . . . . 45
Dépendance de données et spéculation . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Le pipeline logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
CHAPITRE 2
Exploiter EPIC dans les applications . . . . . . . . . . . . . . . . . . . . . . . . 55
Restructuration des boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Optimisation du code par transformation des boucles . . . . . . . . . . . . . . . 58
Exploitation par l’utilisation des pragmas . . . . . . . . . . . . . . . . . . . . . . 72
Directive pour le dépliage de boucles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Directive pour la distribution de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Directive pour le préchargement des données . . . . . . . . . . . . . . . . . . . . . . 74
Directive pour le pipeline logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Performance des pragmas sur le programme saxpy . . . . . . . . . . . . . . . . . . 75
Analyse de code par génération de rapport de compilation . . . . . . . . . . . . 76
L’optimisation interprocédurale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
L’optimisation guidée par profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
En résumé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
CHAPITRE 3
Lire l’assembleur EPIC et aider le compilateur . . . . . . . . . . . . . . 87
Lire l’assembleur EPIC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Pourquoi utiliser l’assembleur ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Trouver ses marques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Les optimisations du compilateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
La boucle pipeline logicielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Méthode de calcul logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Aider le compilateur à faire mieux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Livre Itanium.book Page X Mardi, 28. décembre 2004 3:05 15