Massachusetts Institute of Technology: S. Amarasinghe and M. Rinard's "Notes for Lectures 13-18"
- Introduction to code optimization: instruction scheduling
- Loop optimization: instruction scheduling
- More loop optimizations
- Register allocation
- Memory optimization
Read these slides. If you find a part that is helpful and adds to your knowledge of optimizations, read it. These slides repeat some of the material from above readings. However, they are an excellent review, concise and clear, and reinforce key points. They also provide additional examples.