Loop unrolling is a compiler optimization technique that increases a program's execution speed by decreasing the overhead of loop control code and increasing the pipeline throughput. By expanding the loop body multiple times, it reduces the number of iterations and allows for more efficient use of the CPU's instruction pipeline and registers.