Code Motion In Compiler Design