I've decided to release the part of my training material relating to compiler optimizations. I created this back in January of 2007; for a while I was teaching classes very often, and so it made sense to keep it private. Nowadays I only teach a few classes a year, and so this presentation is sort of languishing away on my hard drive, which is a shame since it's my favorite part. I think people will enjoy reading it, so I have decided to make it public.

Since I made this in early 2007, it lacks some of GCC 4's optimizations, and from time to time I realize that I forgot an optimization or two. But for the most part, it's fairly complete. If you have any specific suggestions for optimizations that I missed, please either email me or respond via comment with a link to a binary exhibiting said optimization and the address at which I can find it. Proper compiler-theoretic names for the optimizations, if applicable, are also appreciated.

Here it is. Enjoy.

https://www.openrce.org/blog/view/1554/Compiler_Optimizations_for_Reverse_Engineers