Loop optimization is a technique to improve the performance of programs by optimizing the inner loops which take a large amount of time. Some common loop optimization methods include code motion, induction variable and strength reduction, loop invariant code motion, loop unrolling, and loop fusion. Code motion moves loop-invariant code outside the loop to avoid unnecessary computations. Induction variable and strength reduction techniques optimize computations involving induction variables. Loop invariant code motion avoids repeating computations inside loops. Loop unrolling replicates loop bodies to reduce loop control overhead. Loop fusion combines multiple nested loops to reduce the total number of iterations.