Strength Reduction

Listing: Strength Reduction, Before Optimization

void func(int* vec, int max, int fac)
{
   int i;
    for (i = 0; i < max; ++i)
    {
      vec[i] = fac * i;
    }
}
Listing: Strength Reduction, After Optimization

void func_optimized(int* vec, int max, int fac)
{
   int i;
   int temp = 0;
   for (i = 0; i < max; ++i)
   {
      vec[i] = temp;
      temp = temp + fac;
   }
}