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