Loop-Invariant Code Motion

Listing: Loop-Invariant Code Motion, Before Optimization

void func(float* vec, int max, float val)
{
  float circ;
  int i;
  for (i = 0; i < max; ++i)
  {
     circ = val * 2 * PI;
     vec[i] = circ;
  }
}
Listing: Loop-Invariant Code Motion, After Optimization

void func_optimized(float* , int max, float val)
{
 float circ;
 int i;
 circ = val * 2 * PI;
 for (i = 0; i < max; ++i)
 {
    vec[i] = circ;
 }
}