Compiler "optimizations" aren't necessarily improvements. Optimization patterns, however, can be nicely enumerated. This is from 1971, Frances Allen and John Cocke. It looks like a classic paper. See previously https://news.ycombinator.com/item?id=24067436