Lecture notes are available in PDF, and the original
Powerpoint formats. Its best to print these out, so you can
take notes on them during class. Lectures will be presented live during the scheduled class time. Recordings
of the lecture are also provided after class, recording links are here.
Class 1 (Monday, Aug 25, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Course introduction and organization. Control flow analysis overview.
Class 2 (Wednesday, Aug 27, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Control flow analysis.
No Class (Monday, Sep 1, 2025): Labor Day Holiday
Class 3 (Wednesday, Sep 3, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Region formation, predicated execution.
Class 4 (Monday, Sep 8, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
If-conversion.
Class 5 (Wednesday, Sep 10, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Dataflow analysis.
Class 6 (Monday, Sep 15, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Dataflow analysis II.
Class 7 (Wednesday, Sep 17, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Static single assignment form.
HW2 overview: Powerpoint or
PDF. Annotated Powerpoint from lecture: pptx
Class 8 (Monday, Sep 22, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Classic optimizations.
Class 9 (Wednesday, Sep 24, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Classic + ILP optimization.
Class 10 (Monday, Sep 29, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
ILP optimization, Intro to Code generation.
Class 11 (Friday, Oct 1, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Instruction scheduling.
Class 12 (Monday, Oct 6, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Superblock scheduling, Intro. to Modulo Scheduling.
Class 13 (Wednesday, Oct 8, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Software Pipelining (aka Modulo scheduling).
No Class (Monday, Oct 13, 2025): Fall Break
Class 14 (Wednesday, Oct 15, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Finish Modulo Scheduling, Register Allocation
No Class (Monday, Oct 20, 2025): Project meetings!
No Class (Wednesday, Oct 22, 2025): Project meetings!
Class 15 (Monday, Oct 27, 2025): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Exam review
Midterm exam (Wednesday, Oct 29, 2025)
No Class (Monday, Nov 3, 2025): Recover from Exam!
Class 16 (Wednesday, Nov 5, 2025): Research Paper Presentations I
Jiarui Li, Yolanda Zhou, and Zhiyi Hu (Group 10), "Scalar Interpolation: A Better Balance Between Vector and Scalar Execution for SuperScalar Architectures" - Slides;Paper
Ziming Zhou, Tobias Alam, Sahil Vemuri, and Yuewen Hou (Group 14), "PyTorch 2: Faster Machine Learning Through Dynamic Python Bytecode Transformation and Graph Compilation" - Slides;Paper
Archit Kumar, Siddharth Chavan, Jack Gurecki, and Batu Engin (Group 21), "Kernel instruction optimization based on the triton compiler" - Slides;Paper
Scott Mahlke (Group -), "Automatic Parallelization With Decoupled Software Pipelining" - Slides;Paper
Class 17 (Monday, Nov 10, 2025): Research Paper Presentations II
Ethan McKean, Andre Quimper Osores, and Forest Zhang (Group 2), "CIMA: Compiler-Enforced Resilience Against Memory Safety Attacks in Cyber-Physical Systems" - Slides;Paper
Abhinav Tondapu and Hang Yeung (Group 6), "TVM: An Automated End-to-End Optimizing Compiler for Deep Learning" - Slides;Paper
Mehdi Zaidi, Peter Cao, Amr Hussein, and Mohammadali Kodeih (Group 23), "Improving Indirect-Call Analysis in LLVM with Type and Data-Flow Co-Analysis" - Slides;Paper
Class 18 (Wednesday, Nov 12, 2025): Research Paper Presentations III
Allison Okimoto, Armaan Randhawa, and Danny Samuel (Group 5), "A GPGPU Compiler for Memory Optimization and Parallelism Management" - Slides;Paper
Joshua Hsueh, Olaf Dsouza, Joshua Weingarden, and Jimmy Dai (Group 13), "Predicting Vectorization Profitability Using Binary Classification" - Slides;Paper
Rishi Rallapalli, Anvita Gollu, Jason Majoros, and Luke Nelson (Group 28), "Globally Optimized Superword Level Parallelism Framework (goSLP)" - Slides;Paper
Class 19 (Monday, Nov 17, 2025): Research Paper Presentations IV
Alan Zhang, Andrew Wang, Ben Schattinger, Josh Brodsky, and Lani Quach (Group 9), "Triton: an intermediate language and compiler for tiled neural network computations" - Slides;Paper
Savini Gamage, Logan Green, Lucas Kellar, and Yung-Hao Liao (Group 12), "Apollo: Automatic Partition-Based Operator Fusion Through Layer By Layer Optimization" - Slides;Paper
Kevin Calopisis, Rafe Symonds, and Alex Smart (Group 22), "Value Profiling and Optimization" - Slides;Paper
Maaz Hussain, Arnav Reddy, and Julian Whittaker (Group 24), "Runtime Feedback in a
Meta-Tracing JIT for Efficient Dynamic Languages" - Slides;Paper
Class 20 (Wednesday, Nov 19, 2025): Research Paper Presentations V
Matt Schumacher, Maddy Heyer, and Krithika Venkatasubramanian (Group 3), "Escape Analysis in Java" - Slides;Paper
Tongyuan Miao, Azfar Mohamed, Arnav Nikam, Tsubasa Okada, and Andrew Trybus (Group 8), "Compiling Machine Learning Programs via High-Level Tracing; JAX: A Domain-Specific Tracing JIT Compiler" - Slides;Paper
Alex Georgiev, Max Christman, and Brian McNulty (Group 11), "Serberus: Protecting Cryptographic Code from Spectres at Compile-Time" - Slides;Paper
Divya Shekar, Sashwat Mahalingam, Srikrishnan Ravichandran, Nikhil Janarthan Surendran, and Nicholas Mellon (Group 29), "A Practical Tile Size Selection Model for Affine Loop Nests" - Slides;Paper