CS 201
Compiler Construction
Instructor: Rajiv Gupta
Office: 408 EBU II
Tele: 951-827-2558
Email: gupta@cs.ucr.edu
Instructor's Office Hours: 1:00-2:00PM, Tuesday-Thursday and by appointment
TA: Min Feng
Office: 463 EBU II
Tele: 951-827-2001
Email: mfeng@cs.ucr.edu
TA's Office Hours: 1:30-2:30PM, Monday-Wednesday and by appointment
Class Meeting Times: 11:10-12:30AM, Tuesday-Thursday, EBU II 141
Class Homepage: http://www.cs.ucr.edu/~gupta/teaching/201-09/
|
Course Description
In this course we will learn about the fundamentals of program analysis (control
and data flow analysis, interprocedural analysis etc.) as well as algorithms for
constructing advanced intermediate program representations (SSA form, Program
Dependence Graph). The above techniques and representations will be used to
develop a suite of machine independent code optimizations (redundancy elimination,
dead code elimination etc.). We will also consider machine dependent optimizations
(e.g., instruction scheduling, register allocation) for modern processors.
Finally we will consider compiler
support for parallelizing applications for multicore systems.
Syllabus
- Code Generation
- Register Allocation
- Control Flow Analysis
- Data Flow Analysis
- Program Representations
- Classical Code Optimizations
- Speculative/Profile-Guided Optimizations
- Interprocedural Analysis
- Array Dependency Analysis
- Instruction Scheduling
- Parallelization
Reference books
- Cooper and Torczon. Engineering a Compiler. Morgan Kaufmann, 2003.
- Aho, Lam, Sethi and Ullman. Compilers: Principles, Tecniques, & Tools. Second Edition, Addison-Wesley, 2007.
- Steven Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, 1997.
Course Requirements
- Project - 25%
- Homeworks - 15%
- Exam I - 30%
- Exam II - 30%
Policies
- You are responsible for all material covered in lectures.
- You may discuss assignments with classmates, but the work
you turn in must be your own.
- Examinations must be taken in class on the date they are given.
There will be no exceptions unless you have a very good reason
and have received permission in advance of the due date or
examination.