Copy Propagation

Listing: Copy Propagation, Before Optimization
void func(int* a, int x)
{
   int i;
   int j;
   j = x;
   for (i = 0; i < j; i++)
   {
       a[i] = j; 
   }
}
Listing: Copy Propagation, After Optimization
void func_optimized(int* a, int x)
{
    int i;
    int j;
    j = x;
    for (i = 0; i < x; i++)
    {
        a[i] = x;
    }
}