Dělení smyček je optimalizace kompilátoru , která se pokouší zjednodušit smyčku nebo odstranit závislosti ve smyčce jejím rozdělením na několik částí, které mají stejné tělo zdrojové smyčky a různé rozsahy čítačů.
Například následující kód:
int p = 10 ; pro ( int i = 0 ; i < 10 ; ++ i ) { y [ i ] = x [ i ] + x [ p ]; p = i ; }v důsledku použití optimalizace se převede na:
y [ 0 ] = x [ 0 ] + x [ 10 ]; pro ( int i = 1 ; i < 10 ; ++ i ) { y [ i ] = x [ i ] + x [ i - 1 ]; }
Nový kód je ekvivalentní předchozímu, ale eliminuje potřebu proměnné "p" uvnitř těla smyčky.
Tato optimalizace se poprvé objevila ve verzi GCC 3.4.