Fuziunea ciclului (loop merging, eng. loop fusion , eng. loop jamming ) este o optimizare a compilatorului care îmbină mai multe cicluri adiacente în arborele ciclului într-unul singur. Transformarea este posibilă dacă buclele au același număr de iterații și nu depind unele de altele conform . Îmbinarea ciclului poate îmbunătăți localitatea datelor [1] [2] , ceea ce îmbunătățește eficiența cache-ului .
Fuzionarea buclelor nu reduce întotdeauna timpul de execuție a programului. Pe unele arhitecturi , poate fi mai benefic să executați două bucle în loc de o buclă combinată, deoarece, de exemplu, localitatea datelor în acest caz poate fi mai mare. În astfel de cazuri, se poate aplica optimizarea inversă, descompunerea buclei , care împarte o buclă în mai multe.
echivalentă cu:
int i , a [ 100 ], b [ 100 ]; pentru ( i = 0 ; i < 100 ; i ++ ) { a [ i ] = 1 ; b [ i ] = 2 ; }