strength reduction
A compiler trick that swaps a slow operation for cheaper ones that give the same answer, like a shift instead of a multiply by 8.
Strength reduction replaces an expensive operation with an equivalent cheaper sequence, such as x * 8 with x << 3, x * 5 with lea [x + x*4], or division by a constant with multiplication.
Examples
Compilers turn
x * 8intox << 3, andx * 5intolea eax, [rdi + rdi*4].
See also