> A good optimizing compiler will substitute shifts for multiplications when possible.
"substitute shifts for multiplications" means that multiplications will be replaced with shifts.
The wordier phrase would be "substitute with shifts for multiplications" or "substitute for multiplications with shifts".
> A good optimizing compiler will substitute shifts for multiplications when possible.
"substitute shifts for multiplications" means that multiplications will be replaced with shifts.
The wordier phrase would be "substitute with shifts for multiplications" or "substitute for multiplications with shifts".