Štěpení smyček je optimalizace kompilátoru , která rozděluje smyčku v programu na několik smyček, z nichž každá má stejné hranice indexu, ale obsahuje pouze část těla původní smyčky .
Například následující kód :
int i , a [ 100 ], b [ 100 ]; for ( i = 0 ; i < 100 ; i ++ ) { a [ i ] = 1 ; b [ i ] = 2 ; }v důsledku použití optimalizace se převede na:
int i , a [ 100 ], b [ 100 ]; for ( i = 0 ; i < 100 ; i ++ ) { a [ i ] = 1 ; } for ( i = 0 ; i < 100 ; i ++ ) { b [ i ] = 2 ; }Hlavním cílem takových optimalizací je snížit počet operací smyček. Zde je hlavní optimalizační metodou rozdělení smyčky do několika smyček, z nichž pro každou je počet instrukcí potřebných k zabalení těla smyčky přísně menší než počet instrukcí pro původní smyčku.
Distribuce je užitečná pro izolování závislostí datové smyčky při přípravě na vektorizaci smyčky , na permutace smyčky nebo pro zlepšení lokality snížením celkového množství dat odkazovaných v každé smyčce.