Advanced Compiler Techniques
Fall 2003 - University Of Minnesota
Course Objectives
This course is intended to provide an in-depth study of code optimization techniques used in compilers for state-of-the-art processors. It begins with analysis techniques such as control flow, data flow, data dependence, and alias analysis. Based on information collected from various analysis techniques, it further discusses compiler optimization transformation techniques, including classic optimizations such as redundancy eliminations, register allocations and loop optimizations, as well as new transformations dealing with Instruction Level Parallelism (ILP) and the memory hierarchy. The target audience consists of Computer Science majors and graduate students .
Course Information
Time: TTh, 11:15am - 12:30PM Room: MechE-102
Instructor: Wei Hsu Office Hours: T Th 1:00 to 2:00pm Location: EE/CS 6-207 (office hour only)
e-mail: hsu@cs.umn.edu Phone: 612-625-2013
Teaching Assistant: None
Prerequisites: CSci 5161 or instructor's permission
Text
Steve S. Muchnick "Advanced Compiler Design Implementation", Morgan Kaufmann, 1997, ISBN 1-55860-320-4
Reference Papers
Armando Fox, Michael Hsiao, James Reed, and Brent Whitlock "A Survey of General and Architecture-Specific Compiler Optimization Techniques". See link on the class web page.
David F. Bacon, Susan L. Graham, and Oliver J. Sharp, "Compiler Transformations for High-Performance Computing ", ACM Computing Survey, see link on the class web page.
Class materials
All class materials will be posted on the class web site in PDF or HTML format.
Evaluation
Homeworks and Projects: Students are required to experiment some optimization transformations on EPIC based processors (e.g. Itanium). Two homeworks will be assigned to get more familiar with flow analysis techniques. A term project to design and implement a significant part of some optimizations on Itanium/Linux platform.
Exams: Midterm exam will be on 11/03/2003 during the regular class hours. The mid-term exam will be open book and open notes. There will be no final exam.
Grading: Final grades are based on accumulated points gained
for the home works, projects and the mid-term exam. The weightages for grading
are: Small projects: 15%, Homeworks: 25%, Midterm 30%, and term project 30%.
Late submission policy:
Rules for Imcomplete
Sept. 2: Introduction (Ch 1)
Sept. 4: Intermediate Representations (IR) (Ch 4)
Sept. 9: Intermediate Represent
ations (IR) (Ch 4)
Sept. 11: Control Flow Analysis (Ch. 7)
Sept. 16: Control Flow Analysis (Ch. 7)
Sept. 18: Data Flow Analysis (Ch. 8)
Sept. 23: Data Flow Analysis (Ch. 8)
Sept. 25: Dependence Analysis and Dependence Graphs (Ch. 9)
Sept. 30: Dependence Analysis and Dependence Graphs (Ch. 9)
Oct. 2: Alias Analysis (Ch. 10)
Oct. 7: Introduction to Optimization (Ch. 11)
Oct. 9: Early Optimizations (Ch. 12)
Oct. 14: Redundancy Elimination (Ch. 13)
Oct. 16: Redundancy Elimination (Ch. 13)
Oct. 21: Loop Optimizations (Ch. 15)
Oct. 23: Procedure Optimizations (Ch. 15)
Oct. 28: Register Allocation (Ch. 16)
Oct. 30: Register Allocation (Ch. 16)
Nov. 4: In-Class Mid-term Exam
Nov. 6: Guest Speaker (Eric Van Wyk)
Nov. 11: Code Scheduling (Ch. 17)
Nov. 13: Code Scheduling (Ch. 17)
Nov. 18: Optimization for the Memory Hierarchy (Ch. 20)
Nov. 20: Optimization for the Memory Hierarchy (Ch. 20)
Nov. 25: Control flow and Interprocedure optimization (Ch. 18 and 19)
Dec. 2: Profile Basef Optimization
Dec. 4: Profile Based Optimizations
Dec. 9: Term Project Review
Dec. 11: Term Project Review
The views and opinions expressed in this page are strictly those of the page author.
The contents of this page have not been reviewed or approved by the University of Minnesota.