Cycle merging (loop merging, eng. loop fusion , eng. loop jamming ) är en kompilatoroptimering som slår samman flera cykler intill cykelträdet till en. Transformationen är möjlig om slingorna har samma antal iterationer och inte är beroende av varandra enligt . Cykelsammanslagning kan förbättra datalokaliteten [1] [2] , vilket förbättrar cacheeffektiviteten .
Sammanfogning av loopar minskar inte alltid programexekveringstiden. På vissa arkitekturer kan det vara mer fördelaktigt att köra två loopar istället för en kombinerad loop, eftersom till exempel datalokaliteten i detta fall kan vara högre. I sådana fall kan omvänd optimering tillämpas, loop decomposition , som delar upp en loop i flera.
ekvivalent med:
int i , a [ 100 ], b [ 100 ]; för ( i = 0 ; i < 100 ; i ++ ) { a [ i ] = 1 ; b [ i ] = 2 ; }