\section{Back End Optimizations} Once MLRisc trees have been generated, they are passed into a module that generates a flowgraph of target machine instructions. Again, this module and all subsequent optimization phases have been specialized to the front end. \image{Back end optimizations}{pictures/png/optimization.png}{align=right} Nearly all instruction selection modules provided by MLRISC use a simple tree pattern matching algorithm rather than the more heavy weight BURG tools --- including the x86 \begin{color}{#580000} It is important to emphasis that all optimizations are performed on the flowgraph of target machine instructions and \emph{not} MLRisc immediate IR. \end{color} There is complete flexibility in the order, and nature of the optimizations performed.