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 (Wednesday, Jan 10, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Course introduction and organization. Control flow analysis overview.
No Class (Monday, Jan 15, 2024): MLK Holiday
Class 2 (Wednesday, Jan 17, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Control flow analysis.
HW1 overview (Presented at today's discussion section): Powerpoint or
PDF.
Class 3 (Monday, Jan 22, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Region formation, predicated execution.
Class 4 (Wednesday, Jan 24, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
If-conversion.
Class 5 (Monday, Jan 29, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Dataflow analysis.
Class 6 (Wednesday, Jan 31, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Class 7 (Monday, Feb 5, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Static single assignment form.
Class 8 (Wednesday, Feb 7, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Classic optimizations.
Class 9 (Monday, Feb 12, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Classic + ILP optimization.
Class 10 (Wednesday, Feb 14, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
ILP optimization, Intro to Code generation.
Class 11 (Monday, Feb 19, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Instruction scheduling.
Class 12 (Wednesday, Feb 21, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Superblock scheduling, Intro. to Modulo Scheduling.
No Class (Monday, Feb 26, 2024): Spring Break!
No Class (Wednesday, Feb 28, 2024): Spring Break!
Class 13 (Monday, Mar 4, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Software Pipelining (aka Modulo scheduling).
Class 14 (Wednesday, Mar 6, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Finish Modulo Scheduling, Register Allocation
No Class (Monday, Mar 11, 2024): Project meetings!
No Class (Wednesday, Mar 13, 2024): Project meetings!
Class 15 (Monday, Mar 18, 2024): Powerpoint or
PDF; Annotated Powerpoint from lecture: pptx
Exam review
Midterm exam (Wednesday, Mar 20, 2024)
Class 16 (Monday, Mar 25, 2024): Research Paper Presentations I
Hithesh P. Reddy, Lai Wang, Noah Kaplan, and Parin Senta (Group 4), "Alpa: Automating Inter- and Intra-Operator Parallelism for Distributed Deep Learning" - Slides;Paper
"Automatic Parallelization with Decoupled Software Pipelining" - Powerpoint or PDF
Class 17 (Wednesday, Mar 27, 2024): Research Paper Presentations II
Mia Kelly, Jeffrey Brill, and Alex Janosi (Group 26), "Compiler-Assisted Detection of Transient Memory Errors" - Slides;Paper
Tsen-Yen Hsiao, Chieh-Shen Chen, Chien Tu, and Rick Tsai (Group 14), "Practical Control Flow Integrity & Randomization for Binary Executables" - Slides;Paper
Ari Singer, Peter He, Jack Holland, Harsh Sinha, and Weiyuan Lyu (Group 17), "Indirect Memory Software Prefetching" - Slides;Paper
Haitong Chen, Wenfan Jiang, Jane Luo, Jeremy Styma, and Yifan Zhu (Group 20), "Superblock Formation Using Static Program Analysis" - Slides;Paper
Class 18 (Monday, Apr 1, 2024): Research Paper Presentations III
Clark Kaminsky, Joshua Symonds, and Christopher Kok (Group 1), "Large Language Models for Compiler Optimization" - Slides;Paper
Shlok Agarwal, Karan Anand, James Edwards, Finn Roblin, and Arnav Shah (Group 13), "Characterizing and Enhancing Global Memory Data Coalescing on GPUs" - Slides;Paper
Zachary Eichenberger, Shin Lee, Harvin Murmick, and Shivan Prasad (Group 22), "Using Machine Learning to Predict Branch Probabilities" - Slides;Paper
Adarsh Ponaka, Aryan Joshi, Ayush Rautwar, Mitchell Chang, and Ronit Pattanayak (Group 12), "Reducing False Sharing on Shared Memory Multiprocessors through Compile Time Transformations" - Slides;Paper
Class 19 (Wednesday, Apr 3, 2024): Research Paper Presentations IV
Minsik Kim and Jonah Parkes (Group 21), "Modulo Graph Embedding:Mapping Applications onto Coarse-Grained Reconfigurable Architectures " - Slides;Paper
Advait Iyer, Sam Jaehnig, Leah MacKay, Julianne Shah, and Daphne Tsai (Group 2), "White-box Compiler Fuzzing Empowered by Large Language Models" - Slides;Paper
Aidan Delwiche, Ben Schwartz, John Kim, Nina Moyski, and Sydney Zhong (Group 19), "SafeLLVM: LLVM Without The ROP Gadgets!" - Slides;Paper
Heyang Zhang, Yuxin Xue, Ziyi Zhou, Jifeng Wang, and Haoran Cheng (Group 6), "LLVM Based Parallelization of C Programs for GPU" - Slides;Paper
Class 20 (Monday, Apr 8, 2024): Research Paper Presentations V
Atharva Bhamburkar, Abhinav Nakarmi, Shmeelok Chakraborty, Matthew Keenan, and Inderjeet Nair (Group 16), "Augmenting Loop Tiling with Data Alignment for Improved Cache Performance" - Slides;Paper
Baichuan Li, Binhao Qin, Xiaoyu Liu, Xinyi Lu, and Yanmei Wang (Group 8), "Bit-Stealing Made Legal Compilation for Custom Memory Representations of Algebraic Data Types" - Slides;Paper
Yuhang Ning, Chen Huang, Yuanzhe Zheng, Houming Chen, and Yucheng Huo (Group 25), "Sculptor: Flexible Approximation with Selective Dynamic Loop Perforation" - Slides;Paper
Yu Wang (Group 23), "Formal Verification of SSA-Based Optimizations for LLVM" - Slides;Paper
No Class (Wednesday, Apr 10, 2024): Enjoy a break, work on your projects!
Class 21 (Monday, Apr 15, 2024): Research Paper Presentations VI
Jiezhong Yang, Yi Liang, Yiming Xiang, and Yue Huang (Group 9), "Vectorizing programs with IF‑statements for processors with SIMD extensions" - Slides;Paper
Shaurya Gunderia, Marissa Bhavsar, Rushil Talla, Raghav Ramesh, and Ankith Palakodati (Group 10), "TVM: An Automated End-to-End Optimizing Compiler for Deep Learning" - Slides;Paper
Ammar Ahmed, Marwa Houalla, Daniel Liu, and Wenzhao Qiu (Group 15), "Bounds Checking with Taint-Based Analysis" - Slides;Paper
Saloni Koshe, Mihir Sri Parankusam, and Karthik Sunil (Group 11), "Loop Rolling for Code Size Reduction" - Slides;Paper
Class 22 (Wednesday, Apr 17, 2024): Research Paper Presentations VII
Haider Baloch, Justin Liu, and David Zhong (Group 3), "Ultimate SLH: Taking Speculative Load Hardening to the Next Level" - Slides;Paper
Eshan Jain, Benjamin Miller, Reinardus Joseph, Max Tennant, and Haoran Jin (Group 18), "Register File Partitioning and Compiler Support for Reducing Embedded Processor Power Consumption" - Slides;Paper
Shuyuan Yang, Qifei Wu, and Yijia Gao (Group 5), "Profile Guided Optimization without Profiles: A Machine Learning Approach" - Slides;Paper
Ravi Bhatt, Daniel Calco, Arjav Patel, Daniel Tian, and Yusei Uehara (Group 7), "Towards a Transpiler for C/C++ to Safer Rust" - Slides;Paper