> The folks at Rice have the most approachable material on program optimization I've come across.
What a funny bit of synchronicity. I just started reading Cooper and Torczon's "Engineering a Compiler" and, though I've just gotten started, it seems really awesome so far. They're pretty clear that the book is focused heavily on optimization and back-end, which is exactly what I was looking for.
EaC is great. The Rice papers linked in Coopers' lectures, e.g. Simpson's thesis on value-numbering, are the basis for some of the book's original material, and are a great supplement.
Almost: Intermediate representation. "Intermediate" because its primary purpose is communication between different phases of a compiler in a serializable form. Some compilers actually have multiple IRs for different stages; for example, GHC will first turn Haskell code into "Core," followed by STG, C--, and LLVM IR.