University of California, Berkeley: Paul Hilfinger's "Global Optimization"
Read these slides. Global optimization uses forward analysis (e.g., constant propagation), which moves information forward, and backward analysis (e.g., liveness), which moves information backward. Note slide 5, which states that dynamic properties of a program are undecidable.
Click http://web.archive.org/web/20160502184143/http://inst.eecs.berkeley.edu/~cs164/sp11/lectures/lecture37.pdf link to open resource.