Slučování cyklů (slučování smyček, eng. loop fusion , eng. loop jamming ) je optimalizace kompilátoru , která sloučí několik cyklů sousedících ve stromu cyklů do jednoho. Transformace je možná, pokud mají smyčky stejný počet iterací a nezávisí na sobě podle . Slučování cyklů může zlepšit datovou lokalitu [1] [2] , což zlepšuje efektivitu mezipaměti .
Sloučení smyček ne vždy zkrátí dobu provádění programu. Na některých architekturách může být výhodnější provést dvě smyčky místo jedné kombinované smyčky, protože například datová lokalita může být v tomto případě vyšší. V takových případech lze použít zpětnou optimalizaci, rozklad smyčky , který rozdělí jednu smyčku na několik.
ekvivalentní:
int i , a [ 100 ], b [ 100 ]; pro ( i = 0 ; i < 100 ; i ++ ) { a [ i ] = 1 ; b [ i ] = 2 ; }