Compilateurs
Quel est le principal effet du déroulage de boucle (loop unrolling) ?
- ALe coût des tests de comptage et des branchements diminue, et les instructions sont plus faciles à réordonner
- BLe corps de la boucle se réduit à une seule copie et le code du programme diminue
- CLa boucle est extraite en fonction pour pouvoir être appelée ailleurs
Afficher la réponse et l'explication
Réponse : A. Le coût des tests de comptage et des branchements diminue, et les instructions sont plus faciles à réordonner
Le déroulage de boucle recopie par exemple quatre fois le corps de la boucle et divise par quatre le nombre d'itérations. Les instructions de test et de branchement diminuent, et les instructions des corps recopiés peuvent être combinées et réordonnées, ce qui permet de mieux masquer les latences des opérations. En contrepartie, le code grossit et peut saturer le cache d'instructions. Un corps réduit à une copie avec un code plus petit décrit l'inverse, et l'extraction de la boucle en fonction est une autre transformation.