Schedule

This schedule is tentative and subject to change.

Acronyms for course references:

A copy of the Dragon Book is essential for the course. The Cooper and Turczon book is available online through the library. The library also carries a print copy of Rival and Yi.

NOTE: These slides are not meant to substitute for lectures.

Date Topic Notes References
Wed Jan 12, 2022

Introduction

Mon Jan 17, 2022

Martin Luther King Jr. Day (No classes)

Wed Jan 19, 2022

Intermediate Representations

Mon Jan 24, 2022

Value Numbering

Wed Jan 26, 2022

Live Variable Analysis

Mon Jan 31, 2022

Available Expressions, Reaching Definitions, and Very Busy Expressions

Wed Feb 02, 2022

Dominators and SSA Form

Mon Feb 07, 2022

Dominators and SSA Form (Part II)

Wed Feb 09, 2022

Foundations of Data Flow Analysis (Part I)

Mon Feb 14, 2022

Foundations of Data Flow Analysis (Part II)

Wed Feb 16, 2022

Dead Code Elimination

Mon Feb 21, 2022

Partial Redundancy Elimination

Wed Feb 23, 2022

Interprocedural Analysis - I

Mon Feb 28, 2022

Interprocedural Analysis - II

Wed Mar 02, 2022

Mid-term Examination

Mon Mar 07, 2022

Spring break (no classes)

Wed Mar 09, 2022

Spring break (no classes)

Mon Mar 14, 2022

Array/Loop Dependence Analysis

Wed Mar 16, 2022

Instruction Selection/Instruction Scheduling/Register Allocation

Mon Mar 21, 2022

Type Inference

Wed Mar 23, 2022

Type Inference - II

Mon Mar 28, 2022

Program Analysis / Abstract Interpretation

Wed Mar 30, 2022

Abstract Interpretation - II

Mon Apr 04, 2022

Abstract Interpretation - III

Wed Apr 06, 2022

Abstract Interpretation - III (contd.)

Mon Apr 11, 2022

Introduction to SAT/SMT Solvers

Wed Apr 13, 2022

Model Checking

Mon Apr 18, 2022

Symbolic Execution

Wed Apr 20, 2022

Proving Programs Correct

Mon Apr 25, 2022

(Paul Ouellette) Verifying Compilers

Wed Apr 27, 2022

May 4, 2022 (12:30 -- 15:30)

Final Exam