15-745 Fall '23
Class Handouts
Lecture Notes
- Lecture 1: Overview of Optimizations (Aug. 29)
4up,
1up
- Lecture 2: Local Optimizations (Aug. 30)
4up,
1up
- Lecture 3: The LLVM Compiler: Overview (Aug. 31)
4up,
1up
- Lecture 4: Introduction to Data Flow Analysis (Sept. 5)
4up,
1up
- Lecture 5: Foundations of Data Flow Analysis (Sept. 6)
4up,
1up
- Lecture 6: The LLVM Compiler: Further Details (Sept. 7)
1up,
4up
- Lecture 7: Global Common Subexpression Elimination, Constant Folding (Sept. 12)
4up,
1up
- Lecture 8: Intro to Static Single Assignment (Sept. 13)
4up,
1up
- Lecture 9: SSA-style Optimizations (Sept. 14)
4up,
1up
- Lecture 10: Loop Invariant Code Motion (Sept. 19)
4up,
1up
- Lecture 11: Induction Variables and Strength Reduction (Sept. 20)
4up,
1up
- Lecture 12: Partial Redundancy Elimination (Sept. 21)
4up,
1up
- Lecture 13: Lazy Code Motion (Sept. 26)
4up,
1up
- Lecture 14: Region-Based Analysis (Sept. 27)
4up,
1up
- Lecture 15: Pointer Analysis (Sept. 28)
4up,
1up
- Lecture 16: Dynamic Code Optimization (Oct. 3)
4up,
1up
- Lecture 17: Register Allocation: Coloring and Spilling (Oct. 4)
4up,
1up
- Bonus Material: Register Allocation: Coalescing
4up,
1up
- Lecture 18: Memory Hierarchy Optimizations (Oct. 5)
4up,
1up
- Lecture 23: List Scheduling (Oct. 25)
4up,
1up
- Lecture 24: Global Scheduling and Software Pipelining (Oct. 26)
4up,
1up
- Lectures 25-26: Data Prefetching (Oct. 31 and Nov. 1)
- Lecture 27: Array Dependence Analysis (Nov. 2)
4up,
1up
- Lecture 28: Thread-Level Speculation (Nov. 8)
4up,
1up
Back to 15-745 home page.