La fusión de ciclos (fusión de bucles, fusión de bucles ing . , atasco de bucles ing. ) es una optimización del compilador que fusiona varios ciclos adyacentes en el árbol de ciclos en uno solo. La transformación es posible si los bucles tienen el mismo número de iteraciones y no dependen unos de otros según . La combinación de ciclos puede mejorar la ubicación de los datos [1] [2] , lo que mejora la eficiencia de la memoria caché .
Combinar bucles no siempre reduce el tiempo de ejecución del programa. En algunas arquitecturas , puede ser más beneficioso ejecutar dos bucles en lugar de uno combinado, ya que, por ejemplo, la localidad de los datos en este caso puede ser mayor. En tales casos, se puede aplicar la optimización inversa, la descomposición de bucles , que divide un bucle en varios.
equivalente a:
int i , a [ 100 ], b [ 100 ]; para ( yo = 0 ; yo < 100 ; yo ++ ) { un [ yo ] = 1 ; segundo [ yo ] = 2 ; }