// This program does not uses loop unrolling. #include int main(void) { for (int i=0; i<5; i++) printf('Hellon'); //print hello 5 times return 0; }
Programme 2 : CPP // This program uses loop unrolling. #include int main(void) { // unrolled the for loop in program 1 printf('Hellon'); printf('Hellon'); printf('Hellon'); printf('Hellon'); printf('Hellon'); return 0; }
Output: Hello Hello Hello Hello HelloIllustration: Le programme 2 est plus efficace que le programme 1 car dans le programme 1, il est nécessaire de vérifier la valeur de i et d'incrémenter la valeur de i à chaque tour de boucle. So small loops like this or loops where there is fixed number of iterations are involved can be unrolled completely to reduce the loop overhead.
Avantages :
- Augmente l’efficacité du programme.
- Réduit la surcharge de boucle.
Inconvénients :
- Utilisation accrue possible du registre en une seule itération pour stocker des variables temporaires, ce qui peut réduire les performances.