The Middle-End of ["GCC"] performs ["SSA"] based optimizations on ["GIMPLE"], then converts the ["GIMPLE"] to ["RTL"] and does more optimizations. Finally it hands it off the optimized RTL to the ["BackEnd"].

Work has started on performing ["Interprocedural optimizations"] in GCC. See also the ["ipa-branch"].

The ["tree folder"] is also considered part of the middle-end, but the ["FrontEnd"]s use it for constant folding also.