added machine independant optimization(global common subexpression elimination)