This is the final phase in the generation of the target code. The intermediate code developed by the translator is used by the generator and produces the final target code. This process is bit difficult because it involves the usage of detailed information about the target machine and uses the machine specific optimizations. There are several issues in the code generation phase because of choice of evaluation order and we have to consider the register allocation etc.. A well-known compiler using automatic code generation techniques is the GNU C compiler.