Cycle merging (loop merging, eng. loop fusion , eng. loop jamming ) er en compiler-optimering , der slår flere cykler ved siden af i cyklustræet sammen til én. Transformationen er mulig, hvis sløjferne har det samme antal iterationer og ikke er afhængige af hinanden ifølge . Cyklusfletning kan forbedre datalokaliteten [1] [2] , hvilket forbedrer cacheeffektiviteten .
Sammenlægning af loops reducerer ikke altid programudførelsestiden. På nogle arkitekturer kan det være mere fordelagtigt at udføre to loops i stedet for én kombineret loop, da f.eks. datalokaliteten i dette tilfælde kan være højere. I sådanne tilfælde kan der anvendes omvendt optimering, loop decomposition , som deler en loop i flere.
svarende til:
int i , a [ 100 ], b [ 100 ]; for ( i = 0 ; i < 100 ; i ++ ) { a [ i ] = 1 ; b [ i ] = 2 ; }