Loop splitting är en kompilatoroptimering som försöker förenkla loopen eller eliminera beroenden i loopen genom att dela upp den i flera delar som har samma källloopkropp och olika räknarintervall.
Till exempel följande kod:
int p = 10 ; för ( int i = 0 ; i < 10 ; ++ i ) { y [ i ] = x [ i ] + x [ p ]; p = i ; }som ett resultat av att tillämpa optimeringen konverteras till:
y [ 0 ] = x [ 0 ] + x [ 10 ]; för ( int i = 1 ; i < 10 ; ++ i ) { y [ i ] = x [ i ] + x [ i -1] ; }
Den nya koden är likvärdig med den tidigare, men eliminerar behovet av "p"-variabeln inuti loopkroppen.
Denna optimering dök upp först i GCC version 3.4.