Some code optimizations are carried out on the intermediate code because:
1
they enhance the portability of the compiler to other target processors
2
program analysis is more accurate on intermediate code than on machine code
3
the information from data flow analysis cannot otherwise be used for optimization
4
the information from the front end cannot otherwise be used for optimization