Advanced Compilers - CMPSCI 710 - Spring 2004

Emery Berger


Course Information

Class mailing list
Project information


Ammons and Larus, Improving Data-flow Analysis with Path Profiles
Chambers and Ungar, Optimizing Compiler Technology for Self
Chambers and Ungar, Iterative Type Analysis and Extended Message Splitting
Cytron et al., Efficiently Computing Static Single Assignment Form and the Control Dependence Graph, TOPLAS 1991
Gibbons and Muchnick, Efficient Instruction Scheduling for a Pipelined Architecture, CC 1986
Hind, Which Pointer Analysis Should I Use?, ISSTA 2001
Kerns and Eggers, Balanced Scheduling: Instruction Scheduling When Memory Latency is Uncertain, PLDI 1993
Larus, Whole Program Paths
Steensgaard, Points-to Analysis in Almost Linear Time, POPL 1996
Wegman and Zadeck, Constant Propagation with Conditional Branches, POPL 1985


Jikes IR
Lecture 1, Introduction
Lecture 2, Control Flow
Lecture 3, Data Flow Analysis
Lecture 4, Data Flow Implementation
Lecture 5, Liveness and Constant Propagation
Lecture 6, Dominance
Lecture 7, SSA Form
Lecture 8, Using SSA Form
Lecture 9, Loop Optimizations
Lecture 10, Garbage Collection
Lecture 11, Common Subexpression Elimination
Lecture 12, Partial Redundancy Elimination
Lecture 13, Register Allocation
Lecture 14, Instruction Scheduling
Lecture 15, Balanced Scheduling
Lecture 16, Interprocedural Analysis
Lecture 17, Pointer Analysis
Lecture 17, part II: Client-Driven Pointer Analysis, and more
Lecture 18: Reconsidering Custom Memory Allocation
Notes on lecture slides


Simon Peyton-Jones's tips on giving a good talk
The Task of the Referee
Tips on writing papers: SOSP and OOPSLA
Dave Patterson's famous "how to have a bad career" talk (remember: do the *opposite* :))