|
Lecture (Tenative Outline)
|
Slides
|
Papers / Resources / Notes
|
|
2/10 Course Overview
|
Slides (PPT)
|
|
|
2/12 Overview of Compilers and JikesRVM
|
Slides (PPT)
|
Read Compiler Wikipedia Page
and JikesRVM (formerly known as Jalapeno) Paper.
|
|
2/17 Control Flow and Project Ideas
|
Slides (PPT)
|
Read the following Wikipedia pages (section)
Graph Theory (Basics)
Basic Blocks
Control Flow Graphs
|
|
2/19 More Control Flow
|
Slides (PPT)
|
Read the following Wikipedia page (section)
Graph Theory (Dominance)
|
|
2/24 Overview of JikesRVM, Phase I, and Data Flow
|
TA Slides (PPT)
Slides (PPT)
|
T.J. Marlowe and B.G. Ryder Properties of Data Flow Frameworks, pp. 121-163, ACTA Informatica, 28, 1990. Paper Here
|
|
2/26 Data Flow
|
Slides (PPT)
|
Engineering a Compiler, Chapter 8, Sections 8.3, 8.4, 8.6
|
|
3/03 More Data Flow
|
Slides (PPT)
|
Compilers: Principles, Techniques, & Tools. 2nd edition (Dragon Book),
Chapter 9, Sections 9.2,9.3, 9.4
|
|
3/05 Yet More Data Flow and Intelligent Compilation
|
Slides (PPT)
Slides (PPT)
|
Compilers: Principles, Techniques, & Tools. 2nd edition (Dragon Book),
Chapter 9, Sections 9.2,9.3, 9.4 and
Intelligent Compilation Paper
|
|
3/10 ILP, Memory, and Syncronization
|
Slides (PPT)
|
Guest Lecture: Joseph Manzano
|
|
3/12 Optimization Tradeoffs
|
Slides (PDF)
|
Guest Lecture: Xiaoming Li
|
|
3/17 Static Single Assignment I
|
Slides (PPT)
|
Efficiently computing static single assignment form and the control dependence graph, Cytron et al.
Paper Here
|
|
3/19 Static Single Assignment II
|
Slides (PPT)
|
Engineering a Compiler, Chap. 9 (Sections on SSA)
|
|
3/24 Midterm
|
|
|
|
4/7 Dynamic Compilation I
|
Slides (PPT)
|
Adaptive optimization in the Jalapeno JVM, Arnold et al. Paper HERE
|
|
4/9 Dynamic Compilation II
|
Slides (PPT)
|
Adaptive optimization in the Jalapeno JVM, Arnold et al. Paper HERE
|
|
4/14 Method Profiling
|
Slides (PPT)
|
|
|
4/16 Feedback Directed Compilation
|
Slides (PPT)
|
|
|
4/21 Register Allocation I
|
Slides (PPT)
|
Read the following Wikipedia pages (section)
Register Allocation
|
|
4/23 Register Allocation II
|
Slides (PPT)
|
Advanced Compiler Design and Implementation, by Stephen Muchnick (pgs 482-486, 494-520)
|
|
4/28 Instruction Scheduling I
|
Slides (PPT)
|
Read the following Wikipedia pages (section)
Instruction Scheduling
|
|
4/30 Class Cancelled
|
|
|
|
5/5 Instruction Scheduling II
|
Slides (PPT)
|
Read the following Wikipedia pages (section)
Instruction Scheduling
|
|
5/7 Loop Transformations I
|
Slides (PPT)
|
Read the following Wikipedia pages (section)
Loop Optimizations
|
|
5/12 Loop Transformations II
|
Slides (PPT)
|
Read the following Wikipedia pages (section)
Loop Optimizations
|
|
5/14 ETI Architecture and Compiler
|
|
|
|
5/18 Future Parallel Languages
|
Slides (PPT)
|
|
Class Resources:
Project I
Project II
|