9.4: Global Intermediate Code Optimizations: Definitions and Examples
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.
Read these pages, which cover the material in more detail and present it in a unified formal way using semilattices.
Read these slides. They repeat some of the material from above readings. However, they are an excellent review, and go into detail on the formalism that underlies global optimizations.