add peephole optimization