Common Subexpression Elimination

Listing: Common Subexpression Elimination, Before Optimization
void func(int* vec, int size, int x, int y, int value)

{
    if (x * y < size)
    {
        vec[x * y] = value;
    }
}
Listing: Common Subexpression Elimination, After Optimization
void func_optimized(int* vec, int size, int x, int y, int value)

{
    int temp;
    temp = x * y;
    if (temp < size)
    {
        vec[temp] = value;
    }
}