common subexpression elimination